我有一个git repo,它是另一个repo的分支.作为一项规则,我通常会添加一个名为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)
Run Code Online (Sandbox Code Playgroud)
有没有办法让这个额外的远程持久化克隆?假设我删除了本地存储库并执行以下操作:
git clone git@github.com:skela/awesomeproject.git
Run Code Online (Sandbox Code Playgroud)
现在我重新检查我的遥控器:
$ git remote -v
origin git@github.com:skela/awesomeproject.git (fetch)
origin git@github.com:skela/awesomeproject.git (push)
Run Code Online (Sandbox Code Playgroud)
我的上游遥控器消失了!
如何确保我的git repo始终保留这两个远程别名?
编辑:只是添加我想要这样做的主要原因,以便在可接受的路径上塑造一些答案;)
目标是在我的仓库中设立一个跟踪上游主人的分支.
[remote "upstream"]
url = git://github.com/bob/awesomeproject.git
fetch = +refs/heads/*:refs/remotes/upstream/*
[branch "father"]
remote = upstream
merge = refs/heads/master
Run Code Online (Sandbox Code Playgroud)
换句话说,在我的仓库中的分支"父亲"跟踪称为上游主分支的远程.
一旦我设置它,它一切都很好,但是一旦我再次克隆了回购,"父"分支指向原点而不是上游.