dongnan
总版主
总版主
  • 粉丝52
  • 发帖数2160
  • 铜币13127枚
  • 威望5808点
  • 银元150个
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 原创写手
阅读:138回复:0

解决 git merger 冲突示例

楼主#
更多 发布于:2018-07-31 14:42
目标
合并 python 分支 到 master ,删除本地与远程的 python 分支。

环境
# 当前分支
git branch -l
* master
  php
  python

思路
由于环境特殊,我这里需要先删除本地 master 分支上的文件,然后再合并 python 分支,合并过程中需要手动解决冲突问题;
解决冲突后就可以 push master 分支到远程git 服务器,最后是收尾工作,删除本地及远程的python 分支。

步骤
1. 删除文件
git rm -r php/
rm 'php/README.md'
rm 'php/tc.class.php'
rm 'php/tc.ini'
rm 'php/tc.php'

2. 提交
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

3. 合并出现冲突
git merge python
冲突(重命名/删除):tclass.py 在 HEAD 中被删除,在 python 中被 重命名。tclass.py 在 python 中的版本被保留。
冲突(修改/删除):tc.ini 在 HEAD 中被删除,在 python 中被 修改。tc.ini 在 python 中的版本被保留。
冲突(修改/删除):README.md 在 HEAD 中被删除,在 python 中被 修改。README.md 在 python 中的版本被保留。
自动合并失败,修正冲突然后提交修正的结果。

4. 冲突文件
git status
省略....
要提交的变更:

    新文件:       tc.py

未合并的路径:
  (酌情使用 "git add/rm <文件>..." 标记解决方案)

    由我们删除:  README.md
    由我们删除:  tc.ini

    由他们添加:  tclass.py

5. 解决冲突
# 添加文件
git add .

# 提交
git commit -m ' 更新: 合并分支 python -> master.'
[master c4ae29b]  更新: 合并分支 python -> master.

# 当前状态

git status
位于分支 master您的分支领先 'origin/master' 共 9 个提交。
  (使用 "git push" 来发布您的本地提交)

无文件要提交,干净的工作区

6. 推送
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

7. 删除分支
# 当前分支
git branch -l
* master
  php
  python

# 删除本地 python 分支
git branch -d python
已删除分支 python(曾为 58b837c)。

# 删除远程 python 分支
git push origin :python
To git@git.test.com:zongming/smartTC.git
 - [deleted]         python

8. 验证
git branch -a
* master
  php
  remotes/origin/HEAD -> origin/master
  remotes/origin/master
  remotes/origin/php

#
游客

返回顶部