美文网首页程序员
git 处理冲突步骤

git 处理冲突步骤

作者: 伽马星人 | 来源:发表于2017-09-21 18:06 被阅读1754次

背景


工程中有一块功能是在别的远程分支上的,然后自己的分支也是一直在更新的。现在要将该分支上的信功能合到自己的分支上。于是采用了git cherry-pick的方法。但是出现了报错,查了许多网上的资料最后总结出处理冲突的步骤。

具体实现


输入了:

git cherry-pick <commit id>

提示报错:

error: could not apply ec52406... fix a bug
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'

我想应该是和本地文件冲突了

于是输入了:

git status

用来显示冲突文件,然后显示:

On branch dev_yzx
You are currently cherry-picking commit ec52406.
  (fix conflicts and run "git cherry-pick --continue")
  (use "git cherry-pick --abort" to cancel the cherry-pick operation)

Unmerged paths:
  (use "git add/rm <file>..." as appropriate to mark resolution)

    both modified:   XJTULink-Widget/Info.plist
    both modified:   XJTULink-iOS/Info.plist
    deleted by us:   XJTULink-iOS/LKClassroomModule/LKClassroomModule/Model/BuildingModel.m
    deleted by us:   XJTULink-iOS/LKClassroomModule/LKClassroomModule/View/ClassroomViewController.m
    deleted by us:   XJTULink-iOS/LKClassroomModule/LKClassroomModule/View/IdleClassroomViewController.m
    deleted by us:   XJTULink-iOS/LKClassroomModule/LKClassroomModule/View/Views/IdleClassroomCell.m
    deleted by us:   XJTULink-iOS/LKClassroomModule/LKClassroomModule/View/Views/IdleClassroomCell.xib

no changes added to commit (use "git add" and/or "git commit -a")

这里的

both modified

指的是我本地分支与我要合并的分支都更改的过的文件,把这些文件,用vim打开然后一个一个手动修改。就拿第一个文件为例,输入:

vim XJTULink-Widget/Info.plist.orig

出现vim界面:

(一堆代码)
<<<<<<< ****(这是现在的分支)
%¥#%&(现在分支的语句)
=======
%¥#%&(冲突分支的语句
>>>>>>> ****(冲突的分支)
(一堆代码)

因为这个文件是版本号,所以明显本地比远程分支的新,需要保留,于是删除下面几句话:

<<<<<<< ****(这是现在的分支)
=======
%¥#%&(冲突分支的语句
>>>>>>> ****(冲突的分支)

然后

deleted by us:

从字面就能看出,这个后面的文件指的是就是本地没有的文件,但是远程分支是有的,因为这次合并就是为了获得这些文件的,所以当然不要删除,接下来再把改好或者需要添加的文件add和commit

git add XJTULink-Widget/Info.plist
git add XJTULink-iOS/Info.plist
git add XJTULink-iOS/LKClassroomModule/LKClassroomModule/Model/BuildingModel.m
git add XJTULink-iOS/LKClassroomModule/LKClassroomModule/View/ClassroomViewController.m
git add XJTULink-iOS/LKClassroomModule/LKClassroomModule/View/IdleClassroomViewController.m
git add XJTULink-iOS/LKClassroomModule/LKClassroomModule/View/Views/IdleClassroomCell.m
git add XJTULink-iOS/LKClassroomModule/LKClassroomModule/View/Views/IdleClassroomCell.xib

git commit -m "[合并]和空闲教室合并"

然后会提示

[dev_yzx bc68cff] [合并]和空闲教室合并
 Author: 李尧 <liyao1021@163.com>
 Date: Wed Apr 19 00:41:37 2017 +0800
 5 files changed, 600 insertions(+)
 create mode 100644 XJTULink-iOS/LKClassroomModule/LKClassroomModule/Model/BuildingModel.m
 create mode 100755 XJTULink-iOS/LKClassroomModule/LKClassroomModule/View/ClassroomViewController.m
 create mode 100755 XJTULink-iOS/LKClassroomModule/LKClassroomModule/View/IdleClassroomViewController.m
 create mode 100755 XJTULink-iOS/LKClassroomModule/LKClassroomModule/View/Views/IdleClassroomCell.m
 create mode 100755 XJTULink-iOS/LKClassroomModule/LKClassroomModule/View/Views/IdleClassroomCell.xib

这就说明cherry-pick完成了,不放心的话可以继续

git status

来查看是否有遗漏的文件,如果没有就会显示

On branch dev_yzx
nothing to commit, working tree clean

就这样完成一套流程了。

提示!提示!提示!提示!提示!提示!

千万不要开着项目进行以上的流程!会没有一点点效果!血的教训!!(老大提供方法:xcode会帮修复的,不点revert就行

闲话


果然还是,一个人写一个分支写久了。这种git合并、处理冲突的操作非常的不熟练,竟然搞了我1天半的时间。本地分支的项目被毁了复原,复原继续毁,然后好不容易步骤都对了,竟然由于开着项目搞得,没有任何反应,还找了半天的原因。(其实为了写文章 复制提示代码 也重弄了好多次。

相关文章

  • git 处理冲突步骤

    背景 工程中有一块功能是在别的远程分支上的,然后自己的分支也是一直在更新的。现在要将该分支上的信功能合到自己的分支...

  • git 解决本地冲突+git常用命令

    git 解决本地冲突 处理的方式非常简单,主要是使用git stash命令进行处理,分成以下几个步骤进行处理。 1...

  • Git使用教程

    拉取代码的正确步骤 git fetch git rebase git rebase --continue(遇到冲突...

  • git冲突处理

    心情好, 起了个大早写代码, push完代码隐隐约约感觉有什么不对。 上个版本我不是已经把淘里程兑换提示的ui给干...

  • Git 冲突处理

    冲突出现原因:假设当前有分支master和分支dev,开始它们是从同一个节点开始的,以下是他们的操作记录。mast...

  • git 处理冲突

    1. 提交时发现冲突 情形:甲和乙共同开发一个项目,原本甲开发A功能,乙开发B功能,互不干扰。然而其中一个配置文件...

  • Git解决代码修改冲突

    Git 操作说明 Git下载项目 操作命令 Git上传提交 操作命令 Git解决同一文件多人修改冲突 操作步骤

  • Git 合并冲突处理

    一个项目使用git从多条分支进行开发,一个分支上的修改可能和一个不同分支上的相似,在合并时难免会产生冲突。在产生冲...

  • Git代码冲突处理

    在使用gitpull代码时,经常会碰到有冲突的情况,提示如下信息: error: Your local chang...

  • Git常用命令大全

    Git分支工作操作步骤 解决冲突1 解决冲突2 这些命令会把你的"mywork"分支里的每个提交(commit)取...

网友评论

    本文标题:git 处理冲突步骤

    本文链接:https://www.haomeiwen.com/subject/gykasxtx.html