这就是我想要做的.我想在之前返回2次提交,将提交中更改的文件作为新提交带回来.但我不想失去我的最后一次承诺.我的最后一次提交在代码中有一些错误,但我现在想保留它.
我阅读了一些文档,但没有人清楚说明重置头部时会发生什么.例如,您是否会丢失所有提交,直到您重置为(向后)的提交?
我想了解这一切工作,但我比较困惑的git revert,reset和checkout命令.
我意识到我应该把最后一次提交藏起来而不是提交,但这是另一个故事.
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)
revert进行新的提交,以恢复旧提交所做的更改.reset --hard将当前分支的HEAD更改为指定的提交.checkout将工作副本切换到指定的分支或提交.
当您将分支重置为较旧的提交时,如果较新的提交不是其他分支或标记的祖先(它们仍然可以访问reflog),则会丢失较新的提交.
目前尚不清楚您需要做什么,最可能的解决方案是revert(完全恢复较旧的提交或一系列提交)和rebase -i(更改较旧的提交或从历史记录中删除它).