一堆问题询问如何重写(rebase
)一些提交以便它们出现在分支上,但这些似乎都假设rebase实际上是必需的,即分支所需的提交是穿插的需要master
提交的提交(无论是由“你”还是其他人提出)。
这个问题比较简单:我在master
分支上有一个存储库的克隆,我做了一堆打算创建GitHub拉取请求的提交。通常我会跑
git checkout -b new-feature
在开始提交之前 ,但在这种情况下我忘记了。我是否可以追溯将此序列标记为提交为新分支(无需使用git rebase
)?
答案 0 :(得分:3)
您可以将提交移动到分支并将主分支重置为它所在的位置:
git branch new-feature
git reset --hard origin/master
请注意,这会消除任何未提交的更改,如果这是一个问题,您应该在开始保存之前使用git stash
。
答案 1 :(得分:1)
假设fork
是您的GitHub分支的远程:
git checkout -b new-feature origin/master
git reset --hard master
git push fork new-feature
git checkout master
git reset --hard origin/master
即:
master
上提交的内容。master
分支。也许不是最优雅的解决方案,但似乎有效。可能还希望将--set-upstream
传递给push
。