当我修改工作文件夹中的文件时,为什么Git会切换我的分支?

时间:2014-07-23 14:40:55

标签: git version-control

我有两个分支。我在一个分支上更改了一些文件,但没有添加或提交它们。更改仅在我的工作文件夹中。更改是在跟踪的文件上,但未添加或提交,更改仅在工作文件夹中。

现在我检查了另一个分支并且它有效。我在另一个分支上,我对文件所做的更改仍在工作文件夹中。

我不明白这个的原因。我本以为Git会拒绝切换分支并告诉我,我有未完成的更改,我应该提交或藏匿或用它们做些什么。

我希望结帐能够重写我的工作文件夹,但我的更改仍然存在。

为什么?无论我在哪个分支上,为什么我的更改都会出现?为什么不让Git告诉我工作文件夹中存在修改过的文件并拒绝切换分支?

2 个答案:

答案 0 :(得分:1)

分支指向提交。在您对该分支进行提交之前,“更改”不是分支的一部分。

您的工作树和索引不直接附加到分支,因此如果您开始进行本地编辑,然后确定您真的想在另一个分支上进行此更改,则可以检查该分支并继续工作。

只有当您进行本地修改(暂存或未分阶段)时,Git才会拒绝更改分支,这些修改基于您要切换的分支与要切换到的分支之间的文件不同。

答案 1 :(得分:0)

您可能指的是未跟踪的文件,而不是更改的文件。未跟踪的文件,从未添加或提交到任何分支,并且当您切换分支时它们会一直存在。

如果您更改了跟踪文件,git将不允许您切换分支,直到您对其执行某些操作(提交,放弃更改等)。