git多分支并行工作
git多分支并行问题
1 问题概述
今天在实习中遇到一个问题:
- 在分支A中提交了工作,正在Review,尚未被合并进主分支
- 在分支B的工作中,涉及修改分支A中修改的文件
于是我就有这样一个疑问:如果分支A在Review中发现问题,需要重新修改,再次提交相同的文件会不会包含分支B中的修改?
实践出真知,我们不妨来试一试。
我们初始化一个仓库,并且新建一个文件,并且编辑
1 | git init |
master
分支下编辑:
接下来我们新建分支branchA
,并且进行编辑然后commit。
branchA
分支下编辑:
1 | git checkout -b branchA |
接下来我们创建branchB
并且进行编辑(假设我们正在处理B分支的工作,但是分支A需要再次修改)
注意这里创建B分支时需要切换回主分支,因为git的分支具有“子树”的结构。
值得一提的是:当你在branchB打开README,md时,你能看到的只有master那一行。
branchB
分支下编辑:
之后我们尝试切换回branchA
分支,发现出现错误提示
说明当前分支上的修改还没有提交或保存,这些修改会在切换分支时被覆盖。
对于这种情况有以下几种解决方案。
2 解决方案
2.1 提交branchB
修改
1 | # on branchB |
可以观察到此时在branchA
中兵没有来自branchB
的修改
2.2 不提交branchB
修改
1 | # 如果你不想现在提交更改,可以使用 git stash 暂时保存这些更改 |
2.3 丢弃branchB
更改
1 | git checkout -- README.md |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 四季音色!