1

嘿,我是 github 的新手,所以请帮帮我。

我有四个提交。

commit4 eh87eg87

commit3 e3e983jj

commit2 de6d6e3d

commit1 du3qw6y1

我想回到commit2并对其进行更改并提交(commit 5)并且不会丢失其余的提交,如commit4、commit3、commit2和commit1。

4

3 回答 3

1

你可以尝试两件事:

  1. git rebase --interactive <ID of the commit before commit1>. 阅读 git 为您打印的文档。基本上,你必须使用你的提交edit而不是pickfor commit1amend然后继续 rebase。
  2. 记下提交的 ID git reset --hard <ID of the commit before commit1>,然后按顺序获取每个提交并使用复制它们git cherry-pick <ID of commit>,然后更改要更改的文件,然后git commit --ammend转到下一个。
于 2012-12-22T08:02:15.927 回答
0

您可以只创建另一个分支,它将用作“悬空”提交的标识符,然后将当前分支重置为提交 2:

  1. git branch temp_branch(您可以在此处选择任何名称)
  2. git reset --hard de6d6e3d(提交 2 的 SHA)

在步骤 1 中创建临时分支后,您仍将位于原始分支上。重置后,您可以继续处理提交 2,如果您需要其他两个提交,只需检查 temp_branch(或将其用于 rebase、cherry-pick 等)

于 2012-12-22T08:02:05.107 回答
0

你可能会尝试

git revert --no-commit de6d6e3d
... hack ...
git commit -m "re commit2"

如果你找到了最好的解决方案,你可能想在这里添加它:https ://git.wiki.kernel.org/index.php/GitSvnClient_(git-svn )

于 2012-12-24T15:35:11.020 回答