我犯了一个错误,不小心在一段时间内提交了 master,现在我已经意识到我的错误,我想将这些提交从 master 移回我自己的暂存分支。
这可能与 git 有关还是我将不得不手动移动文件?
我犯了一个错误,不小心在一段时间内提交了 master,现在我已经意识到我的错误,我想将这些提交从 master 移回我自己的暂存分支。
这可能与 git 有关还是我将不得不手动移动文件?
如果你的错误是这样的,大师目前看起来像:
A->B->C->D
而你只想移动C
到D
一个新的分支,这很容易:
$ git checkout master # move to D
$ git branch new-branch # create new branch at D
$ git reset B-sha1 # reset master to B
$ git checkout new-branch # continue working on new-branch
根据C
和引入的更改D
,这可能无法正常工作。例如,如果C
引入了一个新文件,git 可能不会让您检查新分支,以免覆盖该文件。(当 master 在 签出时B
,git 认为该文件未跟踪。)您可以git clean -xdf
在重置后添加 a ,或者reset --hard
根据情况进行操作。
假设您错误地向 master 提交了 5 次提交,请移动提交:
git checkout master
git branch temp
git rebase --onto yourbranch temp~5 temp
更新分支:
git push . temp:yourbranch
git push . master~5:master -f
更新您的远程主机:
git push origin master -f
告诉你的同事你做了什么,这样他们就可以根据你的更正调整他们的主人。