Git 在一个分支上更改的文件在两个分支上更改

Git 在一个分支上更改的文件在两个分支上更改,git,version-control,Git,Version Control,我正在我的机器上试验Git。我克隆了一些存储库并添加了一个新分支my_branch 在这个分支中,我在一个源文件中编辑了一行。我没有添加更改,显然也没有提交更改 然后我再次切换到master,查看磁盘上的文件。变化也出现在那里 两个问题: 1-这应该发生吗 2-这是否意味着作为一般规则,在切换到其他分支以执行不同的工作(即使我还不想提交我的更改)之前,我应该始终添加我在分支中所做的任何更改。您的更改不在任何分支上。如果您编辑一个文件,而不执行“git add”,更不用说“git commit”,

我正在我的机器上试验Git。我克隆了一些存储库并添加了一个新分支
my_branch

在这个分支中,我在一个源文件中编辑了一行。我没有添加更改,显然也没有提交更改

然后我再次切换到
master
,查看磁盘上的文件。变化也出现在那里

两个问题:

1-这应该发生吗

2-这是否意味着作为一般规则,在切换到其他分支以执行不同的工作(即使我还不想提交我的更改)之前,我应该始终添加我在分支中所做的任何更改。

您的更改不在任何分支上。如果您编辑一个文件,而不执行“git add”,更不用说“git commit”,那么您的更改将一直停留在那里,除非您执行一些操作来消除它,例如
git reset--hard HEAD
git checkout PATH
。如果你去复制你的回购协议,你会发现里面没有你的变化。如果您使用了git日志,您将看不到它的任何迹象。

回答1: 对正如@bmargulies所说,除非您对此做些什么,否则git会在您切换分支时保留更改

对第2条的答复:
是和否。如果您希望在正在处理的分支上进行更改,则应添加并提交更改。如果没有,建议的方法是隐藏更改,直到返回到正在处理的分支,然后应用或弹出隐藏。

我明白了。现在,我在一个分支上添加了更改,而不是在另一个分支上添加了更改。即使我在另一个分支中,更改仍会出现在文件中。“为什么会这样?”我试了好几次。在一个分支中提交更改后,当我在另一个分支中时,更改不会反映在文件中。但是,如果我只在一个分支中添加一个更改,那么当我也在另一个分支中时,该更改在文件中可见。此外,在一个分支中添加的更改可以提交到另一个分支中。WTF?
git add
也不会影响分支。添加文件会将其添加到准备提交的暂存区域或索引中。一旦您提交了某些内容,就会创建一个提交对象并更新分支。只有这样,变更才“属于”分支。