真正优秀的程序员是那些专注于认识、理解、沟通和解决问题的人,你得明白,软件只是用来增加效率的工具而已

git 拉取代码冲突解决

weifeng阅读(276)

[TOC]

1.错误提示

1.1 git pull 冲突提示

git pull 
Updating 96598ef..897d665
error: Your local changes to the following files would be overwritten by merge:
        qq.php
Please commit your changes or stash them before you merge.
Aborting

1.2 git pull –rebae 冲突提示

git pull --rebase
First, rewinding head to replay your work on top of it...
Applying: 测测测试“
Using index info to reconstruct a base tree...
M README.md
.git/rebase-apply/patch:7: trailing whitespace.
12312312
warning: 1 line adds whitespace errors.
Falling back to patching base and 3-way merge...
Auto-merging README.md
CONFLICT (content): Merge conflict in README.md
error: Failed to merge in the changes.
Patch failed at 0001 测测测试“
The copy of the patch that failed is found in: .git/rebase-apply/patch

When you have resolved this problem, run "git rebase --continue".
If you prefer to skip this patch, run "git rebase --skip" instead.
To check out the original branch and stop rebasing, run "git rebase --abort".

2.解决办法

方法1(stash)

将本地文件存到缓存区中
git stash
拉取代码
git pull
还原暂存的内容
git stash pop

如果有冲突 会提示 类似如下代码
Auto-merging c/environ.cCONFLICT (content): Merge conflict in c/environ.c

找到对应的文件,其中Updated upstream 和=====之间的内容就是pull下来的内容,====和stashed changes之间的内容就是本地修改的内容,自行选择需要的部分。

提交代码

方法2

add 和 commit 本地文件

git add -A
git commit -m "测试"

拉取代码

git pull

如果冲突,会标识出冲突的文件,找到对应的文件,选择需要的部分即可。
提交代码

方法3(git pull rebase 冲突解决办法)

找到对应的文件,手动解决冲突,然后git add 冲突的文件
直接git rebase –continue
成功之后,git push 代码即可

3.备注

git pull
git fetch + git merge 会产生合并记录
git pull –rebase 保持提交曲线为直线,让大家易于理解
git fetch + git rebase