按照对git分支的理解,但我在分支1修改内容,然后切换到分支2,分支1上修改的内容,分支2中应该是看不见的。但实践表明,只有当分支1修改的内容已提交,该结论才会成立,对于在分支上未提交的内容,切换分支时,会被带到新的分支。
这里做个小示例验证:

先初始化仓库,同时提交一个初始文件,文件内容:[0] start

直接创建新的分支branch-1,并切到新的分支,编辑文件,新增:[1] update in branch-1的内容。
此时切换回master分支,发现,我们在branch-1分支上修改的内容,并带到了master分支。

同时我们需要注意,如果此时我们在master分支,将修改的内容进行提交,再切换到branch-1分支上,会发现之前修改的内容没有存在于branch-1分支上。
小结:即我们在分支上修改的内容,如果没有提交的话,在切换分支时,是会被带新的分支,只有在当前分支进行提交后,才会将内容合并到当前分支,不会随着分支切换而被带走。
那如果我们在当前分支的修改还没达到提交的时候,但是又需要切换分支时该如何操作呢?
这里可以使用 git stash 来实现这个需求。
同样做个小示例:

在现在的master分支上, 拉取一个新的分支branch-2,在branch-2分支上编辑文件,新增:[2] update in branch-2,此时我们需要切回master分支,但是不希望这个修改被带到master分支,则我们使用 git stash 将在branch-2分支上修改的内容隐藏起来。再切回到master分支,发现刚才的修改没有被带过来。

当我们在master分支上处理完原有的任务后,我们就可以重新切到branch-2分支,此时,我们修改的内容还被隐藏着,可以通过 git stash pop,将隐藏的内容进行弹出。

同时注意,如果我们在本地的修改,与要切换的新分支冲突的话,git也会提示我们要先提交内容,或者隐藏修改的内容,不然无法切换到新的分支。
结论:对于未提交的内容,切换分支时,会被带到新的分支。可以通过 git stash 将修改内容隐藏,来避免该情况的出现。
本文通过实例探讨了在Git中,未提交的修改在分支切换时如何处理。如果在分支上修改的内容未提交,切换分支时这些修改会带到新的分支。使用`git stash`可以临时隐藏修改,避免内容随分支切换。在需要时,通过`git stash apply`可以恢复隐藏的修改。
1752

被折叠的 条评论
为什么被折叠?



