基于Meaning of Git checkout double dashes
git checkout -- fileA.cpp
我希望还原fileA.cpp
上的更改。
问题> checkout
是否有HEAD
?
谢谢
答案 0 :(得分:2)
是的区别,当且仅当索引中的fileA.cpp
版本与fileA.cpp
提交中的HEAD
版本不同时才会有意义
具体来说,如果没有单词HEAD
,git checkout -- <path>
会从索引中将<path>
的版本提取到工作树,而不会保留索引版本。在HEAD
之前添加--
,git checkout HEAD -- <path>
从<path>
标识的提交中提取HEAD
的版本,将 写入index,然后才将索引版本(现在与HEAD
版本相同)写入工作树。
另请参阅this StackOverflow answer(最初在git reset
,但也扩展到结帐)。