我不知道为什么你的问题会被投票贬低,因为它是合理的,对于使用Git时初学者经常犯的错误来说非常常见。
你意外地从分支 BR-01
创建了分支 BR-02
。一个解决方案是使用正确的基础创建分支,然后将你在 BR-02
上所做的任何提交挑选到这个正确的分支上。
git checkout BS-00 # switch to the correct branch
git checkout -b BR-03 # create the correct branch using BS-00 as a base
git cherry-pick <SHA-1> # cherry-pick the commit from BR-02
这里的<SHA-1>
是您希望保留的分支BR-02
上提交的哈希值。 您可以通过切换到BR-02
并从终端键入git log
来找到此值。
请注意,这实际上是将您在BR-02
分支上进行的提交合并到BR-03
分支中,因此可能会存在冲突。 最后,您可以删除不需要的BR-02
分支:
git branch -d BR-02 # delete the wrong branch BR-02 locally
git push origin :BR-02 # delete the wrong branch BR-02 on the remote
BR-02
分支上。 - Tim Biegeleisenrebase
有各种各样的问题。首先,你需要执行交互式rebase
以删除任何你不想要的存在于BR-00
上但不存在的提交。 其次,你将重写历史记录,这意味着在rebase
之后拉取该分支的任何其他人可能会遇到问题。我建议创建一个新分支并挑选你想要的提交,尽管其他人可能不同意我的看法。 - Tim Biegeleisen