我认为最后一次提交并不像我之前想象的那么好。所以我做了
git checkout B
我做了一些更改和提交。所以现在我有:
A-B-C (master branch synced with server)
\
D-E-F ('detached from 6ebd863' branch)
现在我想工作'脱离6ebd863'分支并将其重命名为'master'。什么是最好的方法。
答案 0 :(得分:2)
将现有主分支移动到新提交:
git checkout -B master HEAD
请注意,此命令将强制更新主分支,从存储库的历史记录中删除commit C
。如果您尚未将提交C
推送到协作者可能已撤离的远程存储库(即提交C
仅在您的本地存储库中),这可能不是问题。如果其他人可能已经提取了提交C
的副本,则可能希望使用较少破坏性的选项,例如justinhoward's answer中建议的选项。
答案 1 :(得分:2)
由于master
已经使用提交C推送服务器,因此您应首先恢复C,然后在D,E和F中合并。这将在master
分支中保留您的历史记录。
git checkout -b tmp-fixes
git checkout master
git revert C
git merge tmp-fixes
您可以按照Ajedi32的建议强制更新分支,但这会重写历史记录,这会在您与协作者合作时导致重大问题。