Pau*_*aul 61 git commit git-reset git-branch
我正在努力学习如何有效地使用Git,我想知道我应该如何(良好做法/不良做法?)解决以下案例:
假设我在master中有以下提交链:
然后我意识到在最后两次提交中完成的操作是完全错误的,我需要再次从Commit 1开始.问题:
Von*_*onC 74
git branch tmp # mark the current commit with a tmp branch
git reset --hard Commit1 # revert to Commit1
Run Code Online (Sandbox Code Playgroud)
SO回答" git中'git reset'和'git checkout'之间有什么区别? "对于那种操作非常有启发性

A git reset --hard HEAD~2会做同样的事情(不需要先取回SHA1 Commit1).
由于Commit2和Commit3仍然被一个Git REF(这里的一个分支)的参考,您仍然可以恢复到他们任何时候你想要的(git checkout tmp).
实际上,Darien在评论中提及(关于移动Commit2和Commit3另一个分支):
意外地犯了错误的分支,这让我移动它,做了:
git checkout correctbranch
git rebase tmp
git branch -d tmp
Run Code Online (Sandbox Code Playgroud)
这可以在这里工作,因为初始分支已被重置为Commit1,这意味着git rebase tmp将重放每次提交Commit1(所以这里 Commit2和Commit3)到新的' correctbranch'.
| 归档时间: |
|
| 查看次数: |
19954 次 |
| 最近记录: |