为什么在同一文件位于索引中时,git checkout << file >>不起作用?

时间:2019-01-16 16:51:32

标签: git

我的git文件夹1.txt2.txt中有2个文件。我在其中一个文件(1.txt)中添加了一行,并将其移至暂存。当我尝试从本地存储库中签出同一文件时,为什么不起作用?

即使在签出后,文件的内容也与本地文件夹中的内容相同,并且不会从本地存储库复制较旧的文件内容。为什么checkout命令删除我新添加的行adding new text?我对此行为有点困惑。请参考下图,了解我的一系列命令。

enter image description here

1 个答案:

答案 0 :(得分:1)

This page中的

Git book解释得很好。

git checkout将文件从索引复制到工作树中(丢弃未分段的更改)。但是您没有未暂存的更改,只需将1.txt添加到索引中即可。

您想要的可能是git reset,然后是git checkout

以文件路径作为参数的

git reset会将文件从HEAD复制到索引中。它可以有效地还原git add对于该文件的影响。

git checkout,假设索引中的文件与HEAD中的文件匹配,则撤消您对该文件所做的编辑。 警告:您丢失了更改。