2012-12-22 91 views
1

嘿,我是github的新手,所以请帮助我。不删除以前的提交并对其进行更改。

我有四个提交。

commit4 eh87eg87 

commit3 e3e983jj 

commit2 de6d6e3d 

commit1 du3qw6y1 

我想回去commit2并进行更改并提交(提交5),而不是像失去commit4,commit3,commit2和commit1该提交的其余部分。

回答

1

你可以尝试两件事:

  1. git rebase --interactive <ID of the commit before commit1>。阅读git为您打印的文档。基本上,你必须使用edit而不是pickcommit1,amend你的提交,然后继续rebase。
  2. 记下提交的ID,git reset --hard <ID of the commit before commit1>,然后按顺序执行每个提交并使用git cherry-pick <ID of commit>复制它们,更改要更改的文件然后更改git commit --ammend,然后转到下一个。
+0

哦,我看错了一下,因为你要修复起来'commit2',你可以使用'commit1'作为提交的提交的ID,而不是commit1之前的提交。 –

0

你可以只创建另一个分支,这将成为你的“晃来晃去”款的标识,然后重置当前分支承诺2:

  1. git branch temp_branch(你可以在这里选择任何名称)
  2. git reset --hard de6d6e3d(沙的承诺2)

在步骤1中创建临时分支之后,你仍然会在你原来的分支。一旦你重置了它,你可以继续工作,如果你需要另外两个提交,只需结账temp_branch(或者用它来进行rebase,cherry-pick等)。