git merge 与git revert所产生的问题
当执行git merge
操作后再对合并节点进行git revert
操作,此后再对相应的两条分支进行操作就会产生意想不到的问题。本文意在对此类情况进行讨论分析。
1. 初始化
$ git init # 初始化仓库
Initialized empty Git repository in /Users/htw/Documents/tmp/test/.git/
$ touch master_1 # 在master创建文件master_1
$ git add .
$ git commit -m 'add master_1' # 提交
[master (root-commit) 074af34] add master_1
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 master_1
$ git lg # 查看log
* 074af34 - (HEAD -> master) add master_1 (2 seconds ago) <htw112896>
$ git checkout -b dev # 新建并切换到dev分支
Switched to a new branch 'dev'
$ touch dev_1 # 在dev创建文件dev_1
$ git add .
$ git commit -m 'add dev_1' # 提交
[dev 1f73f04] add dev_1
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 dev_1
$ touch dev_2 # 在dev创建文件dev_2
$ git add .
$ git commit -m 'add dev_2' # 提交
[dev 99cd6db] add dev_2
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 dev_2
$ git checkout master # 切换到master分支
Switched to branch 'master'
$ git merge --no-ff dev # --no-ff 合并dev分支
Merge made by the 'recursive' strategy.
dev_1 | 0
dev_2