Git - Remote (Tracked Repository)

> Code - (Programming|Computer) Language > Code Versioning > Git

1 - About

A remote in Git is a remote repository (ie a remote git server).

Git remote manage the set of repositories (“remotes”) whose branches you track.

They are also called tracked repositories in reference to tracking branch.

See also:

Advertising

3 - Provider

4 - Remote repository definition

The name of one of the following can be used instead of a URL as repository argument:

  • a remote in the Git configuration file: $GIT_DIR/config,
  • a file in the $GIT_DIR/remotes directory, or
  • a file in the $GIT_DIR/branches directory.

All of these also allow you to omit the refspec from the command line because they each contain a refspec which git will use by default.

4.1 - Named remote in configuration file

Name of a remote configured using:

  • git remote
  • or git config (The remote configuration is achieved using the remote.origin.url and remote.origin.fetch configuration variables).
  • or a manual edit to the $GIT_DIR/config file.

The URL of this remote will be used to access the repository.

The refspec of this remote will be used by default when you do not provide a refspec on the command line. The entry in the config file would appear like this:

[remote "<name>"]
    url = <url>
    pushurl = <pushurl>
    push = <refspec>
    fetch = <refspec>

where:

  • The <pushurl> is used for pushes only. It is optional and defaults to <url>.
Advertising

4.2 - Named file in $GIT_DIR/remotes

You can choose to provide the name of a file in $GIT_DIR/remotes. The URL in this file will be used to access the repository.

The refspec in this file will be used as default when you do not provide a refspec on the command line.

This file should have the following format:

URL: one of the above URL format
Push: <refspec>
Pull: <refspec>

where:

Multiple Push: and Pull: lines may be specified for additional branch mappings.

4.3 - Named file in $GIT_DIR/branches

<branch> is the name of a file in $GIT_DIR/branches. Git - Branch

The URL in this file will be used to access the repository. This file should have the following format:

<url>#<head>

whre:

  • <url> is required;
  • #<head> is optional (defaults to master)

Usage:

refs/heads/<head>:refs/heads/<branch>
HEAD:refs/heads/<head>
Advertising

5 - Management

5.1 - list

  • Git remote
git remote
origin
  • Git - Branch (List or delete (if used with -d) the remote-tracking branches)
git branch --remotes
* master
git config --get-regex remote
remote.aliasRemote.url=https://github.com/gerardnico/dokuwiki-plugin-codeplus.git
remote.aliasRemote.fetch=+refs/heads/*:refs/remotes/origin/*

5.2 - add

Add a remote.

Example:

git remote add aliasRemote https://github.com/userName/repositoryName.git

5.3 - verification

git remote -v
origin  https://github.com/gerardnico/myRepo.git (fetch)
origin  https://github.com/gerardnico/myRepo.git (push)

5.4 - relocate (Update URL)

git remote set-url origin http://newUrl.git

5.5 - fetch (Update local)

5.6 - push (Update remote)

5.7 - Paths

Each remote has a directory under .git/refs/remotes/

6 - Documentation / Reference

code/version/git/remote.txt · Last modified: 2019/04/25 10:59 by gerardnico