如何将主服务器中的更改重新设置为安全的已分离HEAD

时间:2018-11-21 04:04:05

标签: git branch git-detached-head

直到现在,我才意识到我一直在研究一个独立的HEAD(a32b42b123)分支。这个分支大大落后于大师。我做了以下操作, git checkout master && git pull origin master git checkout a32b42b123 && git rebase master 将该分支与master同步,并注意到我在该分支中所做的大部分更改都已消失。现在,我了解了分离头是什么。但是,如何在不清除我所做的更改的情况下在这里执行git rebase master安全?

1 个答案:

答案 0 :(得分:2)

Git中的提交是不可变的。如果您从a32b42b123开始并进行更改,那么分支的尖端将不再是a32b42b123,而是另一次提交。如您所见,当您退回到该提交时,您将丢失在此提交之上所做的更改。

当然,您可以使用独立的头,但这只是出于没有(好的)原因而使生活变得困难,特别是在分支机构如此便宜的情况下。只需从该提交创建一个命名分支,然后在其中进行更改即可:

$ git checkout a32b42b123 -b mybranch 
# make some changes, commit
$ git fetch origin
$ git rebase origin/master