git remote 就是用来管理 "remotes"的。
remote 是什么呢? 简单的来讲就是另一个git 仓库(git repository)。
当你从github克隆一个代码库以后,就会有一个默认的remote,它的名字叫origin。
例如:
test@ubunt64 ~/opus_enc_test (master)
$ git remote
origin
test@ubunt64 ~/opus_enc_test (master)
$ git remote -v
origin https://github.com/test/opus_enc_test.git (fetch)
origin https://github.com/test/opus_enc_test.git (push)
这里看到的origin 就是 https://github.com/test/opus_enc_test.git
添加remote
git remote add <name> <url>
添加一个地址为<url>的remote,并给它命名为<name>
例如:
test@ubunt64 ~/opus_enc_test (master)
$ git remote add template ~/template/.git
该命令添加一个名为 template 的remote, 它的地址是 ~/template/.git
我们再来查看remote:
test@ubunt64 ~/opus_enc_test (master)
$ git remote -v
origin https://github.com/test/opus_enc_test.git (fetch)
origin https://github.com/test/opus_enc_test.git (push)
template /home/user/code/template/.git (fetch)
template /home/user/code/template/.git (push)
这样做的好处是啥呢?我们就能从两个不同的仓库下载代码了。
比如: template 这个仓库有个脚本叫build.sh,其他所有的模块库都需要用,这时候我们就只用修改template库里的build.sh,其他的库都能从template里pull,避免了多次修改。
例如:
test@ubunt64 ~/opus_enc_test (master)
$ git pull template master
remote: Counting objects: 30, done.
remote: Compressing objects: 100% (11/11), done.
Receremote: Total 30 (delta 81), reused 1 (delta 8)
Receiving objects: 100% (30/30), 1.86 KiB | 294.00 KiB/s, done.
Resolving deltas: 100% (81/81), completed with 1 local objects.
From /home/user/code/template/
Updating 1a80def0..a43805a1
Fast-forward
build/build.sh | 6 +-
是不是很方便?
其他 git remote 命令请参考 manual
网友评论