如何在不丢失Git中的最后一次提交的情况下返回上一次提交?

yar*_*can 10 git

这就是我想要做的.我想在之前返回2次提交,将提交中更改的文件作为新提交带回来.但我不想失去我的最后一次承诺.我的最后一次提交在代码中有一些错误,但我现在想保留它.

我阅读了一些文档,但没有人清楚说明重置头部时会发生什么.例如,您是否会丢失所有提交,直到您重置为(向后)的提交?

我想了解这一切工作,但我比较困惑的git revert,resetcheckout命令.

我意识到我应该把最后一次提交藏起来而不是提交,但这是另一个故事.

von*_*and 12

如果你想回去,先说2次提交,你可以这样做git checkout HEAD~2.这会让你像现在一样.如果你在分支机构master,git checkout master将带你回到现在.但是,如果您想保持当前状态但在那里启动一个新的开发分支,那么git checkout -b HEAD~2将在那里开始一个新的分支.如果您想要回放主人但没有丢失当前未完成/已完成的工作,请执行此操作

git branch wip           # New branch ends a current tip
git reset --hard HEAD~2  # Old branch rewound, get files from then
Run Code Online (Sandbox Code Playgroud)


wRA*_*RAR 9

revert进行新的提交,以恢复旧提交所做的更改.reset --hard将当前分支的HEAD更改为指定的提交.checkout将工作副本切换到指定的分支或提交.

当您将分支重置为较旧的提交时,如果较新的提交不是其他分支或标记的祖先(它们仍然可以访问reflog),则会丢失较新的提交.

目前尚不清楚您需要做什么,最可能的解决方案是revert(完全恢复较旧的提交或一系列提交)和rebase -i(更改较旧的提交或从历史记录中删除它).