我犯了一个错误,不小心承诺掌握了一段时间,现在我已经意识到我的错误,我想把这些提交从主人那里移回我自己的分期分支。
这可能与git有关,还是我不得不手动移动文件?
答案 0 :(得分:1)
如果你的错误是目前主人的错误:
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可能不允许您检查新分支,以免覆盖文件。 (当在B
签出master时,git认为该文件未被跟踪。)您可以在重置后添加git clean -xdf
,或根据具体情况reset --hard
进行。{/ p>
答案 1 :(得分:0)
假设您错误地提交了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
告诉你的同事你做了什么,这样他们就可以根据你的纠正调整他们的主人。