有没有一种很好的方法可以将我的Git工作副本更改为给定数量的提交。
E.g。要查看过去的3个提交,例如:
git reset HEAD - 3
这里的用例是我只想查看当前工作副本中失败的测试是否在我最近提交之前失败。我不一定要对以前的版本进行任何更改。然后我想将工作副本更改回最新的提交。
答案 0 :(得分:7)
如果您只想在之前的提交中查看(不改变您的分支/存储库的状态),请使用git checkout
。
git checkout HEAD~3
如果您决定从这一点开始进行开发,则可以进行分支。
git checkout -b specialFeature47
要返回到现在,只需检查您所在的分行名称。
git checkout master
对建议的git reset
解决方案感到厌倦。那些实际上移动你的分支指针(有效地删除那3个提交)。
答案 1 :(得分:4)
是的,这是可能的:
git reset --hard HEAD~3
答案 2 :(得分:1)
你总是可以这样做:
git checkout HEAD~15
并提交15次提交。当前提示完全不受干扰,您可以四处移动,甚至构建该版本并检查等。要返回,只需执行git checkout mybranch
。如果您想在那里开始工作(并将原始分支留在冰上),您可以git branch newbranch
,并从现在开始使用newbranch
。
在使用任何历史记录重写命令(commit --amend
,rebase
,reset
等)之前,请仔细考虑您正在做什么,大量那里失去工作。在git
中分支是非常便宜的,通过重新创建历史记录可以完成的大部分工作可以通过创建一个从过去某处开始的新分支来完成,也许可以使用当前的master
分支进行切换。在旧分支上完成的工作可能会在以后派上用场;如果没有,那么保持它的成本无论如何都可以忽略不计。