如何解决 git merger 冲突?
2018-07-31 by dongnan
目标
需要将 python
分支 合并到 master
分支,并且删除本地与远程的 python
分支。
环境
当前全部分支
git branch -l
* master
php
python
处理思路
- 由于环境特殊,这里需要先删除本地
master
分支上的文件,然后再合并python
分支,合并过程中需要手动解决冲突问题。 - 解决冲突后就可以
push master
分支到远程git
服务器,最后是收尾工作,删除本地及远程的python
分支。
步骤
删除文件
git rm -r php/
rm 'php/README.md'
rm 'php/tc.class.php'
rm 'php/tc.ini'
rm 'php/tc.php'
提交
git add .
git commit -m "更新: 合并分支,删除 master 文件."
[master 94c49c0] 更新: 合并分支,删除master 文件.
4 files changed, 335 deletions(-)
delete mode 100644 php/README.md
delete mode 100644 php/tc.class.php
delete mode 100644 php/tc.ini
delete mode 100644 php/tc.php
合并出现冲突
git merge python
冲突(重命名/删除):tclass.py 在 HEAD 中被删除,在 python 中被 重命名。tclass.py 在 python 中的版本被保留。
冲突(修改/删除):tc.ini 在 HEAD 中被删除,在 python 中被 修改。tc.ini 在 python 中的版本被保留。
冲突(修改/删除):README.md 在 HEAD 中被删除,在 python 中被 修改。README.md 在 python 中的版本被保留。
自动合并失败,修正冲突然后提交修正的结果。
冲突的文件
git status
省略....
要提交的变更:
新文件: tc.py
未合并的路径:
(酌情使用 "git add/rm <文件>..." 标记解决方案)
由我们删除: README.md
由我们删除: tc.ini
由他们添加: tclass.py
解决冲突
添加文件
git add .
提交
git commit -m ' 更新: 合并分支 python -> master.'
[master c4ae29b] 更新: 合并分支 python -> master.
状态
git status
位于分支 master您的分支领先 'origin/master' 共 9 个提交。
(使用 "git push" 来发布您的本地提交)
无文件要提交,干净的工作区
推送
git push
# 省略....
Counting objects: 6, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 512 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 1 (delta 0)
To git@git.test.com:zongming/smartTC.git
80ece1e..c4ae29b master -> master
删除分支
删除本地 python 分支
git branch -d python
已删除分支 python(曾为 58b837c)。
删除远程 python 分支
git push origin :python
To git@git.test.com:zongming/smartTC.git
- [deleted] python
验证
git branch -a
* master
php
remotes/origin/HEAD -> origin/master
remotes/origin/master
remotes/origin/php