经过多年作为一个git master
分支的唯一开发人员工作,我正在调查使用其他分支。我的计划是将master
作为一个生产就绪的分支,在develop
分支中进行开发,并创建功能分支。
经过多次阅读,我创建了一个分支(来自我的主分支),名为develop:
git checkout -b develop
然后,我创建了一个功能分支:
git checkout -b my-feature
然后我修改了my-feature
分支中的文件并切换回develop
,如下所示:
git checkout develop
问题是当我查看我在功能分支中更改的文件时,更改仍然可见。为什么会这样?我在开发分支!
Git分支是指向提交的指针。 您没有提交更改,因此它们不在任何分支中,而只在您的工作树中。
当它检查不同的分支时,Git会保留工作树中存在的更改,除非它们与旧分支和新分支之间的差异冲突。
documentation of git checkout
明确提到:
git checkout
<branch>
[...]
保留对工作树中文件的本地修改,以便它们可以提交到
<branch>
。
了解更多关于git checkout
的信息。
更改文件时,除非存储或提交,否则在更改分支时会传输。
感谢您提供有用的建议。在切换到开发之前,我确实提交了功能分支。我应该在原帖中提到过。
问题是PhpStorm没有正确刷新。我点击了同步按钮,现在当我在分支之间移动时,似乎可以正确检测到更改。