1

我犯了一个错误,不小心在一段时间内提交了 master,现在我已经意识到我的错误,我想将这些提交从 master 移回我自己的暂存分支。

这可能与 git 有关还是我将不得不手动移动文件?

4

2 回答 2

1

如果你的错误是这样的,大师目前看起来像:

A->B->C->D

而你只想移动CD一个新的分支,这很容易:

$ 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根据情况进行操作。

于 2012-07-10T14:01:56.537 回答
0

假设您错误地向 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

告诉你的同事你做了什么,这样他们就可以根据你的更正调整他们的主人。

于 2012-07-10T17:39:29.897 回答