【问题标题】:Git: Why do files in my working directory not change when I switch branch?Git:为什么当我切换分支时我的工作目录中的文件没有改变?
【发布时间】:2018-09-02 08:57:18
【问题描述】:

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

经过大量阅读,我创建了一个分支(来自我的 master 分支),名为develop:

git checkout -b develop

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

git checkout -b my-feature

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

git checkout develop

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

【问题讨论】:

标签: git


【解决方案1】:

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

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

documentation of git checkout 明确提到:

git checkout <branch>

[...]

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

阅读更多关于git checkout的信息。

【讨论】:

    【解决方案2】:

    更改,即修改的文件,除非隐藏或提交,否则会在您更改分支时传输。

    【讨论】:

      【解决方案3】:

      感谢您提供有用的建议。在切换到开发之前,我确实确实致力于功能分支。我应该在原帖中提到这一点。

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

      【讨论】:

        猜你喜欢
        • 2016-12-17
        • 2016-12-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-02
        • 2012-01-17
        相关资源
        最近更新 更多