我有一个稍微复杂的场景,upstream
在我的派生中已经有一个定义(来自规范的仓库),但是需要从另一个派生中检出一个分支。为完成此任务,过程略有不同。这是我最终得到的配置:
[remote "origin"]
url = git@github.com:<your_user/org>/<repo>.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
rebase = true
[remote "upstream"]
url = git@github.com:<upstream_user>/<repo>.git
fetch = +refs/heads/*:refs/remotes/upstream/*
[remote "other_user"]
url = git@github.com:<other_user>/<repo>.git
fetch = +refs/heads/*:refs/remotes/<other_user>/*
现在,您也可以从<other_user>
fork中检出分支。
git fetch <other_user> <branch>
git checkout -b <branch> <other_user>/<branch>
这将为您提供派生自派生的本地分支。
要推送该本地分支,我必须具体说明我的push命令。
git push origin <branch>
git fetch upstream
第一步是一个更好的选择,因为git pull upstream
需要在之后git remote add ...
执行更多操作upstream
。