我的git文件夹1.txt
和2.txt
中有2个文件。我在其中一个文件(1.txt
)中添加了一行,并将其移至暂存。当我尝试从本地存储库中签出同一文件时,为什么不起作用?
即使在签出后,文件的内容也与本地文件夹中的内容相同,并且不会从本地存储库复制较旧的文件内容。为什么checkout命令删除我新添加的行adding new text
?我对此行为有点困惑。请参考下图,了解我的一系列命令。
答案 0 :(得分:1)
Git book解释得很好。
git checkout
将文件从索引复制到工作树中(丢弃未分段的更改)。但是您没有未暂存的更改,只需将1.txt
添加到索引中即可。
您想要的可能是git reset
,然后是git checkout
。
git reset
会将文件从HEAD
复制到索引中。它可以有效地还原git add
对于该文件的影响。
git checkout
,假设索引中的文件与HEAD
中的文件匹配,则撤消您对该文件所做的编辑。 警告:您丢失了更改。