我有一个主分支
现在进行一些测试,我做了一个分支A
我结帐分支A修改文件,当我再次结帐主数据时,也会有更改。
在其他存储库中,我有正确的行为
答案 0 :(得分:20)
未提交的更改将从一个分支移动到另一个分支。要将它们分开,您必须stash
这些更改才能转移到另一个分支。当您返回分支机构时,可以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
中所做的更改答案 1 :(得分:8)
我结帐分支A修改文件,当我再次结帐主数据时,也会有更改。
未提交的更改不属于任何分支。它们仅存在于工作树中(如果已添加,则存在于索引中)。
在切换分支时使用干净的工作树是一种很好的做法,以避免在工作树中的更改与切换的分支之间的差异发生冲突时出现问题。
因为分支A
刚刚创建而您没有在master
上提交任何内容,所以分支A
指向与master
相同的提交,在A
和master
之间切换不需要更改工作树。这就是为什么你可以切换分支而不会发生冲突。
为了将您刚刚在分支中执行的更改(假设已检出的分支为A
),您必须将其添加到索引然后提交它们:
git add .
git commit
详细了解git add
和git commit
。