嘿,我是 github 的新手,所以请帮帮我。
我有四个提交。
commit4 eh87eg87
commit3 e3e983jj
commit2 de6d6e3d
commit1 du3qw6y1
我想回到commit2并对其进行更改并提交(commit 5)并且不会丢失其余的提交,如commit4、commit3、commit2和commit1。
你可以尝试两件事:
git rebase --interactive <ID of the commit before commit1>
. 阅读 git 为您打印的文档。基本上,你必须使用你的提交edit
而不是pick
for commit1
,amend
然后继续 rebase。git reset --hard <ID of the commit before commit1>
,然后按顺序获取每个提交并使用复制它们git cherry-pick <ID of commit>
,然后更改要更改的文件,然后git commit --ammend
转到下一个。您可以只创建另一个分支,它将用作“悬空”提交的标识符,然后将当前分支重置为提交 2:
git branch temp_branch
(您可以在此处选择任何名称)git reset --hard de6d6e3d
(提交 2 的 SHA)在步骤 1 中创建临时分支后,您仍将位于原始分支上。重置后,您可以继续处理提交 2,如果您需要其他两个提交,只需检查 temp_branch(或将其用于 rebase、cherry-pick 等)
你可能会尝试
git revert --no-commit de6d6e3d
... hack ...
git commit -m "re commit2"
如果你找到了最好的解决方案,你可能想在这里添加它:https ://git.wiki.kernel.org/index.php/GitSvnClient_(git-svn )