在git checkout之前,我想确保我的最后一次提交不是孤儿,也不会丢失。
例如,在分离的HEAD的情况下,提交可能会丢失。在完成“git checkout”之后很好地报告了丢失提交的事实:
Warning: you are leaving 2 commits behind, not connected to
any of your branches:
8fdb039 Message log for lost commit 2
d8edb79 Message log for lost commit 1
...
Switched to branch 'master'
但是,我想在运行'git checkout'之前检查一下。 - git checkout的dr-run选项将是一种解决方案(git 1.7.9.5没有这样的选项)。
如果某些提交将丢失,需要一个中止git checkout的选项。或者是一个快速检查上次提交是否为孤儿的选项。
答案 0 :(得分:4)
当您处于分离的HEAD时,git branch
将提供* (no branch)
,git status
将提供# Not currently on any branch.
请注意,git已被设想为易于分支,因此您应该避免在分离HEAD状态下工作,并且仅将此状态用于“检查和可丢弃实验”。当您开始修改任何内容时,只需创建一个带git branch non_existing branch
的新分支,即可在签出之前创建分支。
如果您在没有创建分支的情况下离开,则您的提交不一定会丢失。您可以使用git log -2 HEAD
检索提交的ID,然后使用git checkout ID
返回到它以创建分支
答案 1 :(得分:0)
当你看到"留下承诺"时,不需要那么谨慎。消息只标记您留下的历史。
git tag some-useful-name @{-1}
lots of ways引用提交,everything you've done in the last month stays in your repository。 Git并没有失去承诺。