将当前分支重命名为master

时间:2014-11-19 14:54:43

标签: git git-branch

  1. 我有git存储库,提交A-B-C(从早期到新版本) - 在服务器上和我的机器上。它是主分支。
  2. 我认为最后一次提交并不像我之前想象的那么好。所以我做了

    git checkout B 
    
  3. 我做了一些更改和提交。所以现在我有:

    A-B-C  (master branch synced with server)
      \
       D-E-F ('detached from 6ebd863' branch)
    
  4. 现在我想工作'脱离6ebd863'分支并将其重命名为'master'。什么是最好的方法。

2 个答案:

答案 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的建议强制更新分支,但这会重写历史记录,这会在您与协作者合作时导致重大问题。