情况:具有多个分支的开源项目,以及我的贡献。 我想在github上为pull请求创建一个新分支。我希望将这个分支基于开源项目的现有分支之一,但我不希望我的提交进入原始分支。
根据我的经验,如果我克隆我的fork,执行git checkout -b my-branch origin/some-branch
然后提交+推送到my-branch
,在Github中,提交将转到some-branch
而不是my-branch
}。显然,如果我想在同一分支上为多个拉取请求创建多个分支,这就有问题了。
我找到的解决方法如下:
git checkout -b some-branch origin/some-branch
git checkout -b my-branch
(基于某个分支的新分支,但不跟踪它)
之后 - commit + push,first push将在Github上创建my-branch
。
然而,这给我留下了some-branch
的额外本地副本。显然,我可以稍后删除它,但有没有办法避免创建它?有没有办法在一个命令中基于my-branch
创建origin/some-branch
但不跟踪它,而中间没有额外的分支?
答案 0 :(得分:1)
使用相同提交的SHA1哈希而不是origin/some-branch
。例如:
git checkout -b my-branch 92fc7a2
请记住,分支只是提交中的标签,仅此而已。它是一个41字节的文件,包含提交的SHA1哈希名称和换行符。