源代码树 - 切换分支仍然包含未提交的更改

Source tree - switching branch still contain the uncommited changes

假设我有两个分支——主分支和开发分支,我目前在主分支
如果我对某些文件进行了一些更改并保存,然后检出到开发分支,
我发现那里仍然包含我在主分支中所做的更改。
正常吗?
我应该怎么做才能避免这种情况?

正常;这些更改都是 uncommittedunstashed,也就是说它们存在 purely 在你的文件系统上( Git 之外)。另请注意,您所做的更改在提交之前不会绑定到特定的 Git 分支。

如果您发现自己处于这种情况,最可能的原因是您想停止处理一项功能并开始处理另一项功能。

  • 如果您想将更改与您正在处理的 上一个 分支相关联,只需 commit 这些更改 before 交换分支(你总是可以交换回旧分支,提交,然后如果你忘记了交换到新分支)。这会将更改附加到分支,但它仍然只会在您的本地分支上(并且对其他团队成员不可见),除非您 pushorigin.
  • 如果您想要放弃(但存储这些更改以便您稍后可以返回),只需 stash 更改即可。隐藏 提及 它们来自特定的分支,尽管隐藏可以应用于 任何 分支。如果您不小心开始在错误的分支上工作,这将很有用。

这两种方法都会为您提供新分支的干净副本。