好的,我在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。这是应该的方式吗?为什么呢?
答案 0 :(得分:2)
听起来help.php
和master
中的slave
版本是相同的版本,否则git不允许您更改分支。
尚未向任何分支提交未分段和暂存的更改,因此,如果没有冲突,git将允许您在分支之间进行这些更改。如果您已将删除提交到slave
,那么当您切换master
时文件就会返回。
实际上,您可以使用以下命令“撤消”删除(在任一分支上)
git checkout -- help.php
这会将help.php
的索引版本检出回您的工作树。
如果您已经上演但未提交删除,则必须检查HEAD
版本:
git checkout HEAD -- help.php