在冲突的情况下如何快速merge

本文记录了使用Git进行项目版本控制的具体步骤,包括分支创建、合并、推送等操作,并展示了如何通过命令行解决远程仓库同步的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Welcome to Git (version 1.9.5-preview20150319)




Run 'git help git' to display the help index.
Run 'git help <command>' to display help for specific commands.


t00169790@PEKY2T001697901 /F/code/FENIX_PUB (master)
$ git log
commit 1bd0d00c8dbe5c72f8c7aef30812aeb2b4d3832e
Author: t00169790 <tanzhe@huawei.com>
Date:   Wed Jan 20 11:57:04 2016 +0800


    【问题单号 Defect】DTS2016011302373 【修改说明 Modification】【 V1R3 并线版


commit fc7f63d383ecf787fff9ac768db0b07db82b58db
Author: w00317256 <alasong.wang@huawei.com>
Date:   Tue Jan 19 23:56:45 2016 +0800


    【问题单号 Defect】DTS2014052906891 【修改说明 Modification】ops fix by zhan


commit 97451ce2d6b259802fd1dae59f228de355eafe50
Merge: 254c8df a0bd881
Author: 张伟 <wesley.zhang@huawei.com>
Date:   Tue Jan 19 23:17:25 2016 +0800


    Merge MR-53 from branch 'z00150042/fenix_pub-2::master' into master


    * 'master' of z00150042/fenix_pub-2:
      【问题单号 Defect】DTS2016011401987 【修改说明 Modification】Fenix V1R3基


commit 254c8df98aee36866837489f50fc953cac075b53
Author: w00317256 <alasong.wang@huawei.com>


t00169790@PEKY2T001697901 /F/code/FENIX_PUB (master)
$


t00169790@PEKY2T001697901 /F/code/FENIX_PUB (master)
$


t00169790@PEKY2T001697901 /F/code/FENIX_PUB (master)
$


t00169790@PEKY2T001697901 /F/code/FENIX_PUB (master)
$ git remote -v
origin  ssh://git@source.huawei.com:2222/t00169790/FENIX_PUB.git (fetch)
origin  ssh://git@source.huawei.com:2222/t00169790/FENIX_PUB.git (push)


t00169790@PEKY2T001697901 /F/code/FENIX_PUB (master)
$ git remote add trunk ssh://git@source.huawei.com:2222/Fenix/fenix_pub.git


t00169790@PEKY2T001697901 /F/code/FENIX_PUB (master)
$ git remote -v
origin  ssh://git@source.huawei.com:2222/t00169790/FENIX_PUB.git (fetch)
origin  ssh://git@source.huawei.com:2222/t00169790/FENIX_PUB.git (push)
trunk   ssh://git@source.huawei.com:2222/Fenix/fenix_pub.git (fetch)
trunk   ssh://git@source.huawei.com:2222/Fenix/fenix_pub.git (push)


t00169790@PEKY2T001697901 /F/code/FENIX_PUB (master)
$ git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/br_log_for_zhenhong
  remotes/origin/fenix_r3_eular
  remotes/origin/master


t00169790@PEKY2T001697901 /F/code/FENIX_PUB (master)
$ git fetch
The authenticity of host '[source.huawei.com]:2222 ([10.106.128.93]:2222)' can't
 be established.
ECDSA key fingerprint is 6a:63:c8:84:81:d1:cc:ae:bb:6d:4a:0c:6d:1f:59:40.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[source.huawei.com]:2222,[10.106.128.93]:2222' (ECDS
A) to the list of known hosts.


t00169790@PEKY2T001697901 /F/code/FENIX_PUB (master)
$ git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/br_log_for_zhenhong
  remotes/origin/fenix_r3_eular
  remotes/origin/master


t00169790@PEKY2T001697901 /F/code/FENIX_PUB (master)
$ git fetch trunk
remote: Counting objects: 727, done.
remote: Compressing objects: 100% (269/269), done.
remote: Total 727 (delta 562), reused 595 (delta 454)
Receiving objects: 100% (727/727), 990.23 KiB | 0 bytes/s, done.
Resolving deltas: 100% (562/562), completed with 426 local objects.
From ssh://source.huawei.com:2222/Fenix/fenix_pub
 * [new branch]      fenix_r3_eular -> trunk/fenix_r3_eular
 * [new branch]      master     -> trunk/master
 * [new branch]      new_br_log -> trunk/new_br_log


t00169790@PEKY2T001697901 /F/code/FENIX_PUB (master)
$ git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/br_log_for_zhenhong
  remotes/origin/fenix_r3_eular
  remotes/origin/master
  remotes/trunk/fenix_r3_eular
  remotes/trunk/master
  remotes/trunk/new_br_log


t00169790@PEKY2T001697901 /F/code/FENIX_PUB (master)
$ git branch t1 trunk/master
Branch t1 set up to track remote branch master from trunk.


t00169790@PEKY2T001697901 /F/code/FENIX_PUB (master)
$


t00169790@PEKY2T001697901 /F/code/FENIX_PUB (master)
$ git branch -a
* master
  t1
  remotes/origin/HEAD -> origin/master
  remotes/origin/br_log_for_zhenhong
  remotes/origin/fenix_r3_eular
  remotes/origin/master
  remotes/trunk/fenix_r3_eular
  remotes/trunk/master
  remotes/trunk/new_br_log


t00169790@PEKY2T001697901 /F/code/FENIX_PUB (master)
$ git checkout t1
Switched to branch 't1'
Your branch is up-to-date with 'trunk/master'.


t00169790@PEKY2T001697901 /F/code/FENIX_PUB (t1)
$ git pull
Already up-to-date.


t00169790@PEKY2T001697901 /F/code/FENIX_PUB (t1)
$ git cherry-pick 1bd0d00c8dbe5c72f8c7aef30812aeb2b4d3832e
[t1 12ac786] 【问题单号 Defect】DTS2016011302373 【修改说明 Modification】【 V1R
3 并线版本质量提升 L3子系统】CE形态:BFD会话协商不up
 23 files changed, 653 insertions(+), 56 deletions(-)
 create mode 100644 COMMON/multi_product_res/share_res/l3/dbupgrade/BfdBasePdtCa
p_upgrade.lua


Warning: Your console font probably doesn't support Unicode. If you experience s
trange characters in the output, consider switching to a TrueType font such as L
ucida Console!


t00169790@PEKY2T001697901 /F/code/FENIX_PUB (t1)
$ git status
On branch t1
Your branch is ahead of 'trunk/master' by 1 commit.
  (use "git push" to publish your local commits)




It took 4.98 seconds to enumerate untracked files. 'status -uno'
may speed it up, but you have to be careful not to forget to add
new files yourself (see 'git help status').
nothing to commit, working directory clean


t00169790@PEKY2T001697901 /F/code/FENIX_PUB (t1)
$ git log
commit 12ac786a6ce8b8f5e0c55cca1912d7b9baf19c9b
Author: t00169790 <tanzhe@huawei.com>
Date:   Wed Jan 20 11:57:04 2016 +0800


    【问题单号 Defect】DTS2016011302373 【修改说明 Modification】【 V1R3 并线版


commit 3b688bd4ccd785efa50d9a1987c188b196d3e143
Author: w00317256 <alasong.wang@huawei.com>
Date:   Wed Jan 20 04:13:46 2016 +0000


    【问题单号 Defect】 DTS2016011403754 【修改说明 Modification】【V1R3 并线版


commit 8ffd564a3e1e339dd29577fb588c28c304e8fb47
Author: w00317256 <alasong.wang@huawei.com>
Date:   Wed Jan 20 03:37:26 2016 +0000


    【问题单号 Defect】 DTS2016011403754 【修改说明 Modification】【V1R3 并线版


commit dc435a8671ba0c8b02d346e8659727102915b36a
Author: w00317256 <alasong.wang@huawei.com>
Date:   Wed Jan 20 02:44:00 2016 +0000


    【问题单号 Defect】 DTS2016011403754 【修改说明 Modification】【V1R3 并线版


commit e953547974f36039c6579bd1946ecf4b8709524f
Author: w00317256 <alasong.wang@huawei.com>
Date:   Tue Jan 19 15:58:04 2016 +0000


    【问题单号 Defect】DTS2016011403754 【修改说明 Modification】【V1R3 并线版本


commit 97451ce2d6b259802fd1dae59f228de355eafe50
Merge: 254c8df a0bd881
Author: 张伟 <wesley.zhang@huawei.com>


t00169790@PEKY2T001697901 /F/code/FENIX_PUB (t1)
$


t00169790@PEKY2T001697901 /F/code/FENIX_PUB (t1)
$


t00169790@PEKY2T001697901 /F/code/FENIX_PUB (t1)
$


t00169790@PEKY2T001697901 /F/code/FENIX_PUB (t1)
$


t00169790@PEKY2T001697901 /F/code/FENIX_PUB (t1)
$ git branch -a
  master
* t1
  remotes/origin/HEAD -> origin/master
  remotes/origin/br_log_for_zhenhong
  remotes/origin/fenix_r3_eular
  remotes/origin/master
  remotes/trunk/fenix_r3_eular
  remotes/trunk/master
  remotes/trunk/new_br_log


t00169790@PEKY2T001697901 /F/code/FENIX_PUB (t1)
$ git push origin HEAD:t1
Counting objects: 171, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (58/58), done.
Writing objects: 100% (64/64), 13.61 KiB | 0 bytes/s, done.
Total 64 (delta 55), reused 7 (delta 6)
To ssh://git@source.huawei.com:2222/t00169790/FENIX_PUB.git
 * [new branch]      HEAD -> t1


t00169790@PEKY2T001697901 /F/code/FENIX_PUB (t1)
$ git branch -a
  master
* t1
  remotes/origin/HEAD -> origin/master
  remotes/origin/br_log_for_zhenhong
  remotes/origin/fenix_r3_eular
  remotes/origin/master
  remotes/origin/t1
  remotes/trunk/fenix_r3_eular
  remotes/trunk/master
  remotes/trunk/new_br_log


t00169790@PEKY2T001697901 /F/code/FENIX_PUB (t1)
$
### Git rebase 和 merge 中常见冲突的原因 在使用 `git rebase` 或者 `git merge` 进行分支集成时,可能会遇到各种类型的冲突。这些冲突通常发生在多个开发者在同一部分代码上工作的情况下。 #### 文件修改冲突 当两个分支都对同一个文件进行了不同的更改时会发生此类冲突。例如,在一个分支中某函数被重命名而在另一个分支中该函数内部逻辑发生了变化,则会出现冲突[^1]。 #### 新增/删除文件冲突 如果在一个分支里新增了一个文件但在其他地方又试图移除它;或者是相反的情况——某个文件先被删掉而后又被重新创建出来,那么这也会引发冲突[^2]。 #### 合并策略不一致引起的冲突 对于某些复杂的项目结构来说,可能定义了特定的合并策略来决定如何处理来自不同源的数据。如果不小心改变了默认设置或是在不同环境中应用了不一样的配置选项,也可能造成不必要的麻烦[^3]。 --- ### 解决方案概述 针对上述提到的各种冲突场景,可以采取如下措施来进行有效应对: #### 自动化工具辅助解决简单冲突 利用IDE内置功能或是第三方插件自动检测并尝试修复一些较为简单的语法层面差异。这类工具有能力识别出大部分由格式变动引起的小问题,并给出合理的建议供用户确认执行。 ```bash # 使用编辑器自带的功能快速解析基本级别的文本对比结果 vimdiff file.txt~ HEAD:file.txt ``` #### 手动调整复杂变更 面对更深层次的设计思路分歧则需要开发人员之间加强沟通交流,共同商讨最佳实践路径。通过仔细审查每一处改动细节,确保最终版本既满足业务需求又能保持良好的可读性和维护性。 ```bash # 当rebase发生冲突时,手动编辑冲突文件后标记为已解决 git add . git rebase --continue ``` #### 预防为主减少潜在风险 建立完善的编码规范文档指导团队成员遵循统一标准编写程序;定期同步最新进展至主干分支以便及时发现并解决问题苗头;合理规划任务分配避免多人同时触碰敏感区域等做法均有助于降低实际工作中遭遇冲突的概率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值