我有一个Git存储库,它是另一个存储库的派生版本。通常情况下,我会添加一个名为“upstream”的远程副本,它是我派生自的原始存储库。
$ git remote -v
origin git@github.com:skela/awesomeproject.git (fetch)
origin git@github.com:skela/awesomeproject.git (push)
upstream git://github.com/bob/awesomeproject.git (fetch)
upstream git://github.com/bob/awesomeproject.git (push)
有没有办法让这个额外的远程仓库在克隆时也保留下来呢? 比如我删除了本地仓库,然后执行:
git clone git@github.com:skela/awesomeproject.git
现在我要重新检查我的遥控器:
$ git remote -v
origin git@github.com:skela/awesomeproject.git (fetch)
origin git@github.com:skela/awesomeproject.git (push)
我的上游远程已经消失了!
我该如何确保我的 git 仓库始终保留这两个远程别名?
编辑: 只是为了添加一个主要原因,为了将一些答案引导到可接受的方向 ;)
目标是在我的仓库中有一个分支可以跟踪上游的 master 分支。
[remote "upstream"]
url = git://github.com/bob/awesomeproject.git
fetch = +refs/heads/*:refs/remotes/upstream/*
[branch "father"]
remote = upstream
merge = refs/heads/master
换句话说,我的repo中名为"father"的分支跟踪了名为upstream的远程主分支。
一旦我设置好了,它就可以很好地工作。但是一旦我再次克隆该repo,"father"分支指向的是origin而不是upstream。