git基于远程分支创建新的非跟踪分支

时间:2014-12-28 17:53:32

标签: git github version-control git-branch

情况:具有多个分支的开源项目,以及我的贡献。 我想在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但不跟踪它,而中间没有额外的分支?

1 个答案:

答案 0 :(得分:1)

使用相同提交的SHA1哈希而不是origin/some-branch。例如:

git checkout -b my-branch 92fc7a2

请记住,分支只是提交中的标签,仅此而已。它是一个41字节的文件,包含提交的SHA1哈希名称和换行符。