我有时会检查一些以前版本的代码来检查或测试。如果我想修改之前的提交,我已经看到了怎么做的说明 - 但假设我没有做任何更改。完成后,例如git checkout HEAD^
,我该如何回到分支的顶端?git log
不再显示我最新提交的SHA。如何在检出以前的提交后返回到最新的提交?
回答
如果你知道你想回到提交一些部门的负责人,或者被标记,那么你可以
git checkout branchname
你可以还使用git reflog
来查看过去您的HEAD(或任何其他参考)指出的其他提交内容。
编辑补充:
在Git中的新版本,如果你只跑了git checkout
或别的东西将您HEAD
一次,你也可以做
git checkout -
切换回无论在最后一次结账之前。这是由类比外壳成语cd -
回去任何工作目录中的一个动机是以前。
我想提一下,典型的例子是“git checkout master”。我学习使用git时遇到的一个困难是不知道我实际上可以用什么特定的关键字(例如“主”)来代替“branchname”这样的占位符词。 – AbePralle
'master'并不是真正的任何关键字,'HEAD'的方式。它只是新存储库中的默认分支名称。您可以运行'git branch'来获取存储库中的分支列表,'git tag -l'获取标签列表。同样,'origin'是存储库克隆的远程的默认名称,但没有什么特别之处。 – Novelocrat
如果不清楚,'git reflog'会给你一个散列列表,在这一点上你可以使用'git checkout [commit-hash]'。 – jbnunn
看看图形用户界面... gitk
它显示所有提交。有时它是更容易的工作图形... ^^
是的,这实际上是我以前做过的 - 但我目前没有可用的GUI –
git的结帐主
师傅一角,或最后一次提交。 gitk只会显示您当时在树中的位置。 git reflog将显示所有提交,但在这种情况下,您只需要提示,所以git checkout master。
gitk --all显示所有提交。 – Kharoof
过这个问题就来了刚才的事,并添加
要转到最近承诺:
git checkout $(git log --branches -1 --pretty=format:"%H")
说明:
git log --branches
显示提交的日志从所有本地分支
-1
限制为一次提交→最近提交
--pretty=format:"%H"
格式,只显示提交哈希壳层的
git checkout $(...)
使用输出参数用于结帐
注:
这将导致虽然一个分离的头(因为我们直接结帐提交)。这可以通过使用sed
提取分支名称来避免,如下所述。
要到最近的分公司提交:
git checkout $(git log --branches -1 --pretty=format:'%D' |sed 's/HEAD -> \|tag: [^,]*\|,.*//g')
说明:
git log --branches
显示提交的日志从所有地方分公司
-1
限制一个提交→最近的提交
--pretty=format:"%D"
格式,只显示裁判的名字
|sed 's/HEAD -> \|tag: [^,]*\|,.*//g'
忽略HEAD,标签和提取第一多个分支名称
壳层的 git checkout $(...)
使用输出参数用于结帐
注:
这将始终只如果该提交有多个,则使用第一个分支名称。
无论如何,我认为最好的解决办法只是为最近显示裁判的名字提交知道在哪里签到:
git log --branches -1 --pretty=format:'%D'
例如为该命令创建别名git top
。
您可以使用此以下的Git命令之一:
git checkout master
git checkout branchname
- 1. 如何在返回到早期提交后返回到unpushed提交
- 2. 在提交新的更改之前更正以前的提交
- 3. 恢复到旧提交后,我无法返回到最近的提交
- 4. 在提交之前将提交提交到新分支
- 5. Git - 回到以前的提交,现在想写在前面的提交
- 6. SourceTree - 不知道如何返回到以前的提交
- 7. 如何返回到最新的远程提交git
- 8. git:在检出旧的提交后,我如何看到下一个提交?
- 9. 返回ActionResult提交后提交模式弹出
- 10. 提交前如何检查?
- 11. 检查提交是否在提交前第一次提交
- 12. 我已经提交更改之后,如何返回到以前的位置
- 13. 如何在保留“最新”提交的同时压缩大量“先前”提交?
- 14. 获取最后一次提交之前的提交
- 15. 如何在向Gerrit提交上次提交后提交额外的提交?
- 16. 如何使用gitpython做最后一次提交的当前提交的git diff?
- 17. 如何在我的提交之前插入已提交的提交,并还原那些已提交的提交?
- 18. Git:如何编辑之前不是最新提交的提交的消息?
- 19. Tortoisegit撤消最后提交到回购
- 20. 如何在Riak中实现提交前和提交后钩子?
- 21. Eclipse Egit新的提交覆盖了最后一次提交
- 22. 如何找出当前提交的作者及其父提交?
- 23. 回到之前在SourceTree中的提交
- 24. 应用从以前的一个git补丁提交到以后提交
- 25. 如何用Mysql提交最后一个id的表单提交
- 26. 在提交旧提交后获取最新代码?
- 27. 提交svn unstages最后一次提交?
- 28. 如何编辑以前的提交,并在不删除git之前的提交?
- 29. Git - 将未提交的更改推送到以前的提交
- 30. 如何在添加多次提交后取消提交提交?
关于'混帐log'句子你可以运行'git log --all'(或者更有用的'git log --oneline --graph --all')。 – Wildcard