直到现在我才意识到我一直在独立的 HEAD (a32b42b123) 分支上工作。这个分支落后于master很多。我做了以下操作,
git checkout master && git pull origin master
git checkout a32b42b123 && git rebase master
将此分支与 master 同步,并注意到我在该分支中所做的大部分更改都消失了。现在我明白什么是超然的头脑了。但是我怎样才能在这里执行 git rebase master 安全性而不清除我所做的更改呢?
最佳答案
Git 中的提交是不可变的。如果您从 a32b42b123 开始并进行更改,则分支的尖端将不再是 a32b42b123,而是不同的提交。当您签回该提交时,如您所见,您会丢失在其基础上所做的更改。
当然,你可以使用独立的头部,但这只会让生活变得困难,没有(好的)理由,特别是当分支如此便宜时。只需从该提交创建一个命名分支并在其中进行更改即可:
$ git checkout a32b42b123 -b mybranch
# make some changes, commit
$ git fetch origin
$ git rebase origin/master
关于git - 如何安全地将 master 中的更改重新设置为分离的 HEAD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53405107/