我创建了一个新的存储库并提交了一个文件a.pl
。一切都好。
如果我这样做git status
,则没有任何添加或未跟踪的更改。我做了一个git log
,我在这个存储库中看到了hash
我最后一次(实际上是唯一一次)提交。
现在我修改a.pl
并在文件末尾追加一个新行。例如print "1";
,我保存它,如果我这样做git status
,它会报告未跟踪的更改。
现在如果我这样做:git checkout <commit_id>
使用git log
我希望转到我提交的版本中报告的哈希,所以我最近未跟踪的修改应该被删除。
我这样做了git checkout 1d739
,我得到:
注意:签出“1d739”。
您处于“分离 HEAD”状态。您可以环顾四周,进行实验性更改并提交它们,并且您可以放弃在此状态下所做的任何提交,而不会通过执行另一个签出来影响任何分支。ETC
当我查看文件时,我看到print "1";
我添加的仍然存在!
现在在这个结帐版本中,我在文件中附加了另一行:print "2";
并保存文件。
然后我做:git checkout master
。这会让我回到最新的提交,对吧?所以我预计我做的最后一个追加print "2";
会丢失。
好吧,在我得到:Switched to branch 'master'
我看到文件并且它同时具有print "1";
和print "2";
.
这真的很令人困惑。我现在不应该看到最新的提交吗?并且这两个修改都应该丢失?