我犯了一个错误,不小心正在努力掌握一段时间,现在我已经意识到自己的错误,我想将这些违反主人的规定移回到我自己的分期分支中。有没有办法从一个分支中删除提交并将它们放入另一个分支?
这是可能的,与混帐或我将不得不手动移动文件?
我犯了一个错误,不小心正在努力掌握一段时间,现在我已经意识到自己的错误,我想将这些违反主人的规定移回到我自己的分期分支中。有没有办法从一个分支中删除提交并将它们放入另一个分支?
这是可能的,与混帐或我将不得不手动移动文件?
如果你的错误是这样的,主目前的样子:
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
,或者根据具体情况执行reset --hard
。
那么,这是做什么东西移动到一个不同的分支,并继续发展?这是否允许我拯救远程主人? – Alex 2012-07-10 14:44:14
@Alex如果您已经推送到远程,您还有更多工作要做。如果你知道没有其他人从这个远程端口拉出来,你可以在那里做一个update-ref,但是如果你不能保证你需要添加一些'revert'提交。如果你 – 2012-07-10 14:49:27
假设你做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
告诉你同事你做了什么,所以他们可以根据你的改正来调整他们的主人。
可能的重复[如何将一组提交从一个提交到一个单独的分支?](http://stackoverflow.com/questions/1178553/how-can-i-move-a-set-of-提交从主到分支) – Mark 2012-07-10 14:07:02