Git: 远程仓库

查看远程仓库

git remote -v 命令,会显示需要读写远程仓库使用的 Git 保存的简写与其对应的 URL

1
2
3
4
5
$ git clone https://github.com/schacon/ticgit
$ cd ticgit
$ git remote -v
origin https://github.com/schacon/ticgit (fetch)
origin https://github.com/schacon/ticgit (push)

git remote show [remote-name]

1
2
3
4
5
6
7
8
9
10
11
12
$ git remote show origin
* remote origin
Fetch URL: https://github.com/schacon/ticgit
Push URL: https://github.com/schacon/ticgit
HEAD branch: master
Remote branches:
master tracked
dev-branch tracked
Local branch configured for 'git pull':
master merges with remote master
Local ref configured for 'git push':
master pushes to master (up to date)

添加远程仓库

git remote add <shortname> <url> 添加一个新的远程 Git 仓库,同时指定一个你可以轻松引用的简写(即 shortname)

1
2
3
4
5
6
$ git remote add pb https://github.com/paulboone/ticgit
$ git remote -v
origin https://github.com/schacon/ticgit (fetch)
origin https://github.com/schacon/ticgit (push)
pb https://github.com/paulboone/ticgit (fetch)
pb https://github.com/paulboone/ticgit (push)

从远程仓库中抓取与拉取

1
2
3
4
5
6
7
8
# Download to local (i.e., .git/FETCH_HEAD)
git fetch [remote-name]
# Merge to local current branch. If need to merge to other branch, first checkout to it.
$ git merge origin/next
# The 2 commands above could be merged to:
$ git pull origin next
# Or just git full if the configuration is fine.

如果你使用 clone 命令克隆了一个仓库,命令会自动将其添加为远程仓库并默认以 “origin” 为简写。

如果你有一个分支设置为跟踪一个远程分支,可以使用 git pull 命令来自动的抓取然后合并远程分支到当前分支。 默认情况下,git clone 命令会自动设置本地 master 分支跟踪克隆的远程仓库的 master 分支(或不管是什么名字的默认分支)。 运行 git pull 通常会从最初克隆的服务器上抓取数据并自动尝试合并到当前所在的分支。

推送到远程仓库

1
2
3
4
5
6
7
8
git push [remote-name] [branch-name]
# Push to the master branch of origin
$ git push origin master
# -u means save the upstream configuration. Next time could just use git push
$ git push -u origin master
$ git push

远程仓库的移除与重命名

例如,想要将 pb 重命名为 paul,可以用 git remote rename 这样做:

1
2
3
4
$ git remote rename pb paul
$ git remote
origin
paul

值得注意的是这同样也会修改你的远程分支名字。 那些过去引用 pb/master 的现在会引用 paul/master。

如果要移除一个远程仓库,可以使用 git remote rm