在Git中,你怎么看和管理不在一个分支提交?(In Git, how do you see and

2019-07-04 05:12发布

一个提交不一定是一个分支,所以你怎么看和管理这些提交? 此外,有可能看从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

我怎样才能让我的“未经跟踪的承诺”回来了?

Answer 1:

这种情况被称为分离的头 。 通常工具(如gitk)将不会显示你承诺不可由符号分支名到达。

为了让您的承诺回来,你可以使用git reflog显示日志最近的所有活动,包括您分离的头。 当你找到它,你可以使用它提交ID与git checkout回去吧。 如果你发现它的价值,你可能想给分支的名称在这一点上。



Answer 2:

难道说你在谈论git fsck --unreachable



Answer 3:

git reflog会告诉你像一个符号名HEAD@{0}你可以用它来访问不可到达提交。 然后,您可以使用gitk --all HEAD@{0}看看它在你的仓库存在。



文章来源: In Git, how do you see and manage commits that aren't in a branch?