To coordinate your repository with another repository, you define a remote. A remote is a named entity stored in the config file of a repository. It consists of two different parts. The first part of a remote states the name of the other repository in the form of a URL. The second part, called a refspec, specifies how a ref (which usually represents a branch) should be mapped from the namespace of one repository into the namespace of the other repository.
Let’s look at each of these components in turn.
Git supports several forms of Uniform Resource Locator (URL) that can be used to name remote repositories. These forms specify both an access protocol and the location or address of the data.
Technically, Git’s forms of URL are neither URLs nor URIs,
because none entirely conform to RFC 1738 or RFC 2396, respectively.
However, because of their versatile utility in naming the location of
Git repositories, Git’s variants are usually referred to as
Git URLs. Furthermore, the
.git/config file uses the name
url as well.
As you have seen, the simplest form of Git URL refers to a repository on a local filesystem, be it a true physical filesystem or a virtual filesystem mounted locally via the Network File System (NFS). There are two permutations:
Although these two formats are essentially identical, there is a subtle but important distinction between the two. The former uses hard links within ...