git-url-parse(1)
================

NAME
----
git-url-parse - Parse and extract git URL components

SYNOPSIS
--------
[synopsis]
git url-parse [-c <component>] [--] <url>...

DESCRIPTION
-----------

Git supports many ways to specify URLs, some of them non-standard.
For example, git supports the scp style [user@]host:[path] format.
This command eases interoperability with git URLs by enabling the
parsing and extraction of the components of all git URLs.

Any syntactically valid URL is parsed, even if the scheme is not one
git supports for fetching or pushing.

OPTIONS
-------

`-c <component>`::
`--component <component>`::
	Extract the _<component>_ component from the given Git URLs.
	_<component>_ can be one of:
	`scheme`, `user`, `password`, `host`, `port`, `path`.

OUTPUT
------

When `--component` is given, the requested component of each URL
is printed on its own line, in the order the URLs were given. If
the URL has no such component (for example, a port in a URL that
does not specify one), an empty line is printed in its place.

When `--component` is not given, no output is produced. The exit
status is zero if every URL parses successfully and non-zero
otherwise, allowing the command to be used purely as a validator.

EXAMPLES
--------

* Print the host name:
+
------------
$ git url-parse --component host https://example.com/user/repo
example.com
------------

* Print the path:
+
------------
$ git url-parse --component path https://example.com/user/repo
/user/repo
$ git url-parse --component path example.com:~user/repo
~user/repo
$ git url-parse --component path example.com:user/repo
/user/repo
------------

* Validate URLs without outputting anything:
+
------------
$ git url-parse https://example.com/user/repo example.com:~user/repo
------------

SEE ALSO
--------
linkgit:git-clone[1],
linkgit:git-fetch[1],
linkgit:git-config[1]

GIT
---
Part of the linkgit:git[1] suite
