Git,本地分支更改是否会影响其他本地分支?

21

我有一个主分支

现在为了进行一些测试和其他事情,我创建了一个名为A的分支

我切换到分支A并修改文件,当我再切换回主分支时,更改也反映在主分支上。

在其他代码库中,我的操作是正确的。

2个回答

26

未提交的更改将从一个分支移动到另一个分支。为了保持它们分开,您必须在切换到另一个分支之前存储这些更改。当您返回自己的分支时,可以使用 apply 命令应用这些更改以恢复它们。

如下所示:

>$ git status
On branch branch_1
Your branch is up-to-date with 'origin/branch_1'.

modified:   dir/file.rb 
>$ git stash
>$ git checkout <branch_2>

>$ git checkout <branch_1> #after finishing your tasks in branch_2 you can go back to branch_1
>$ git stash apply

现在您将会获取之前在branch_1分支中所做的更改


3
“未跟踪的提交”可能是指“未提交的更改”。它们不会从一个分支移动到另一个分支。它们没有在存储库中,因为它们还没有被提交。 - axiac
2
是的,未提交的更改不会在任何分支上,因此如果您检出,则可以在其他分支中使用它们。 - Vishnu Atrai

13
我切换到分支A修改文件,然后再切换回主分支,这些更改也存在于主分支中。未提交的更改不属于任何分支,它们仅存在于工作区(如果已添加,则还存在索引中)。为避免工作区的更改与分支之间的差异发生冲突,最好在切换分支时保持干净的工作区。因为分支A刚创建且你没有在它上面提交任何东西,master也没有提交,所以分支A指向与master相同的提交,因此在A和master之间切换不需要对工作区进行更改,这就是为什么可以在不产生冲突的情况下切换分支的原因。为了将你刚做的更改放入一个分支中(假设选定的分支是A),你必须将它们添加到索引中,然后提交它们:
git add .
git commit

阅读有关git addgit commit的更多信息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接