Git:当我切换分支时,为什么工作目录中的文件没有改变?

问题描述 投票:-1回答:3

经过多年作为一个git master分支的唯一开发人员工作,我正在调查使用其他分支。我的计划是将master作为一个生产就绪的分支,在develop分支中进行开发,并创建功能分支。

经过多次阅读,我创建了一个分支(来自我的主分支),名为develop:

git checkout -b develop

然后,我创建了一个功能分支:

git checkout -b my-feature

然后我修改了my-feature分支中的文件并切换回develop,如下所示:

git checkout develop

问题是当我查看我在功能分支中更改的文件时,更改仍然可见。为什么会这样?我在开发分支!

git
3个回答
2
投票

Git分支是指向提交的指针。 您没有提交更改,因此它们不在任何分支中,而只在您的工作树中。

当它检查不同的分支时,Git会保留工作树中存在的更改,除非它们与旧分支和新分支之间的差异冲突。

documentation of git checkout明确提到:

git checkout <branch>

[...]

保留对工作树中文件的本地修改,以便它们可以提交到<branch>

了解更多关于git checkout的信息。


0
投票

更改文件时,除非存储或提交,否则在更改分支时会传输。


0
投票

感谢您提供有用的建议。在切换到开发之前,我确实提交了功能分支。我应该在原帖中提到过。

问题是PhpStorm没有正确刷新。我点击了同步按钮,现在当我在分支之间移动时,似乎可以正确检测到更改。

© www.soinside.com 2019 - 2024. All rights reserved.