即使在其他分支中签出,Git也不会在提交之前同步文件

时间:2012-06-22 23:40:06

标签: git branch

好的,我在Windows上有git 1.7.11.1,我有一个带有2个分支的本地测试存储库。一个是使用index.php和help.php的master。然后我创建另一个名为slave的分支:)

我从git bash rm help.php开始运行,它从文件夹中消失,但我没有播放任何内容。我切换到checkout master分支,它应该恢复文件help.php,因为它没有在master分支中修改,不是吗?

并没有这样做。当我回到slave分支并提交然后切换到checkout master时,会出现help.php。这是应该的方式吗?为什么呢?

1 个答案:

答案 0 :(得分:2)

听起来help.phpmaster中的slave版本是相同的版本,否则git不允许您更改分支。

尚未向任何分支提交未分段和暂存的更改,因此,如果没有冲突,git将允许您在分支之间进行这些更改。如果您已将删除提交到slave,那么当您切换master时文件就会返回。

实际上,您可以使用以下命令“撤消”删除(在任一分支上)

git checkout -- help.php

这会将help.php的索引版本检出回您的工作树。

如果您已经上演但未提交删除,则必须检查HEAD版本:

git checkout HEAD -- help.php