git 冲突
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了git 冲突,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2040字,纯文字阅读大概需要3分钟。
内容图文
![git 冲突](/upload/InfoBanner/zyjiaocheng/1297/e5cdc9ad56ab494cb1d812bcba393b81.jpg)
冲突的产
生
? 很多命令都可能出现冲突,但从根本上来讲,都是 merge 和 patch (应用补丁)时产生冲突。
? 而 rebase 就是重新设置基准,然后应用补丁的过程,所以也会冲突。
? git pull 会自动 merge , repo sync 会自动 rebase ,所以 git pull 和 repo sync 也会产生冲突。当然 git rebase 就更不用说了
冲突的类型
树冲突
? 方法文件名修改造成的冲突,称为树冲突。
? 比如, a 用户把文件改名为 a.c , b 用户把同一个文件改名为 b.c ,那么 b 将这两个 commit 合并时,会产生冲突。
?
$ git status
added by us: b.c
both deleted: origin-name.c
added by them: a.c
? 如果最终确定用 b.c ,那么解决办法如下:
?
git rm a.c
git rm origin-name.c
git add b.c
git commit
? 执行前面两个 git rm 时,会告警“ file-name : needs merge” ,可以不必理会。
?
? 树冲突也可以用 git mergetool 来解决,但整个解决过程是在交互式问答中完成的,用 d 删除不要的文件,用 c 保留需要的文件。
? 最后执行 git commit 提交即可。
逻辑冲突
? git 自动处理(合并 / 应用补丁)成功,但是逻辑上是有问题的。
? 比如另外一个人修改了文件名,但我还使用老的文件名,这种情况下自动处理是能成功的,但实际上是有问题的。
? 又比如,函数返回值含义变化,但我还使用老的含义,这种情况自动处理成功,但可能隐藏着重大 BUG 。这种问题,主要通过自动化测试来保障。所以最好是能够写出比较完备的自动化测试用例。
? 这种冲突的解决,就是做一次 BUG 修正。不是真正解决 git 报告的冲突。
内容冲突
? 两个用户修改了同一个文件的同一块区域, git 会报告内容冲突。我们常见的都是这种。
冲突情况
? 当我们merge还是pull完后如果有冲突的话就会出现下面这个状态
|
出现CONFLICT 冲突我们就必须去查看对应的文件而不是直接add . 再次commit,这样git会直接把两个冲突的文件合并,然后提交
冲突处理
? 当两条分支对同一个文件的同一个文本块进行了不同的修改,并试图合并时,Git不能自动合并的,称之为冲突(conflict)。解决冲突需要人工处理。
? 比如当前在master分支,想把dev分支merge过来,结果产生了一个冲突,打开文件内容可以看到这么一个冲突:
? <<<<<<< HEAD ? test in master ? ======= ? test in dev ? >>>>>>> dev |
? <<<<<<< 标记冲突开始,后面跟的是当前分支中的内容。
? HEAD 指向当前分支末梢的提交。
? ======= 之后, >>>>>>> 之前是要 merge 过来的另一条分支上的代码。
? >>>>>>> 之后的 dev 是该分支的名字。
? 对于简单的合并,手工编辑,然后去掉这些标记,最后像往常的提交一样先 add 再 commit 即可。
git 删除已经 add 文件
使用 git rm 命令即可,有两种选择
? git rm --cached " 文件路径" ,不删除物理文件,仅将该文件从缓存中删除;
? git rm --f " 文件路径" ,不仅将该文件从缓存中删除,还会将物理文件删除(不会回收到垃圾桶)。
Git工作方法
? git branch working # 建立一个自己的分支,如取名working
? git checkout working # 确保使用的是工作分支
? git add .
? git commit -m"$1" -a # 提交代码到本地,工作分支增加一个版本,这里的$1是运行脚本的第一个参数
? git checkout master git pull origin master # 切换回默认分支,并将默认分支和中央最新版本合并
? git merge working # 在本地合并你的这次修改到默认分支
? git push origin master # 提交到中央版本库,接下来还是要切换回工作分支的
? git checkout working --force
原文:http://my.oschina.net/u/1757458/blog/349827
内容总结
以上是互联网集市为您收集整理的git 冲突全部内容,希望文章能够帮你解决git 冲突所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。