直到现在我才意识到我一直在研究一个分离的 HEAD (a32b42b123) 分支。这个分支远远落后于大师。我做了以下操作,
git checkout master && git pull origin master
git checkout a32b42b123 && git rebase master
将这个分支与 master 同步,并注意到我在这个分支中所做的大部分更改都消失了。现在我明白了什么是分离的 HEAD。但是我怎么能在git rebase master
这里执行安全而不消除我所做的更改呢?
1 回答
2
Git 中的提交是不可变的。如果您从 a32b42b123 开始并进行了更改,那么您的分支的尖端将不再是 a32b42b123,而是一个不同的提交。如您所见,当您检出该提交时,您会丢失在其之上所做的更改。
当然,您可以使用分离的头部,但这只是无缘无故地让生活变得困难,尤其是在树枝如此便宜的情况下。只需从该提交创建一个命名分支并在那里进行更改:
$ git checkout a32b42b123 -b mybranch
# make some changes, commit
$ git fetch origin
$ git rebase origin/master
于 2018-11-21T04:31:56.280 回答