提交不一定在分支中,那么您如何查看和管理这些提交?另外,是否可以从gitk查看这些提交?
非常感谢!
PS:只是为了让事情更清楚,这是一个例子:git init
git commit
touch toto
git add toto
git commit -a
echo $RANDOM > toto
git commit -a
git checkout f798e54 #checkout initial commit
echo $RANDOM > toto
git commit -a #"untracked commit"
gitk --all
git branch
git log
git checkout master #back on the main branch
gitk --all #untracked commit is lost?
git log
git branch
如何让我的“未跟踪提交”回来?
答案 0 :(得分:7)
这种情况称为detached HEAD。通常,工具(例如gitk)不会显示符号分支名称无法访问的提交。
要恢复提交,您可以使用git reflog
显示所有近期活动的日志,包括已分离的HEAD。当您找到它时,您可以使用其git checkout
的提交ID来回复它。如果您发现它很有价值,那么您可能希望在该点为该分支命名。
答案 1 :(得分:3)
你是在谈论git fsck --unreachable
吗?
答案 2 :(得分:2)
git reflog
将显示一个符号名称,如HEAD@{0}
,您可以使用它来访问无法访问的提交。然后,您可以使用gitk --all HEAD@{0}
查看存储库中存在的位置。