说明:多人开发时,两人同时修改同一个文件,第一个人修改完push代码之后,第二个人再pull代码时就会发生冲突:因为远程仓库的文件和你本地仓库的文件有差异。
一、首先,记住
- 在
push
之前先pull
- 在
pull
之前先commit
- 在修改文件之前先
pull
二、模拟冲突
1、创建两个客户端
将本地项目复制一份出来,模拟制造出两个客户端,这里成为 客户端1、客户端2。
2、修改并提交代码
修改客户端1代码:console.log('冲突测试:客户端1的修改')
,并提交到远程仓库:
git add .
git commit -m ‘冲突测试:客户端1的提交’
git pull
git push
修改客户端2代码:console.log('冲突测试:客户端2的修改')
,并提交到远程仓库:
git add .
git commit -m ‘冲突测试:客户端2的提交’
git pull
git pull 之后,就会发现冲突。这时候会看到文件变成了这样:
三、解决冲突
1、手动修改冲突文件
如下:
2、git add
执行命令 git add
更新文件的索引(index);
3、合并冲突
执行命令 git rebase --continue
合并冲突;
再次 push 即可
四、处理冲突的相关命令
git rebase 参数说明
命令 | 描述 |
---|---|
git rebase --abort | 放弃合并,回到pull之前的状态 |
git rebase --skip | 会将引起冲突的commits丢弃掉(慎用!!) |
git rebase --continue | 合并冲突,结合"git add filename"命令一起用与修复冲突 |
系列文章
Git专栏
Git使用(一):安装与配置
Git使用(二):创建项目并提交到远程仓库
Git使用(三):分支管理,创建分支、合并分支、合并分支的某一次提交等
Git使用(四):提交管理,修改提交信息、合并多次提交、版本回退、撤销本地文件修改等
Git使用(五):解决冲突以及如何避免冲突
SmartGit 安装及使用(一):安装及配置
SmartGit 安装及使用(二):工作界面介绍、提交代码以及防止代码冲突等操作
SmartGit 安装及使用(三):撤销提交、合并多次提交等操作
SmartGit 安装及使用(四):创建、合并分支以及解决冲突等操作
SmartGit 安装及使用(附录):注册非商业许可证
【Git】如何生成SSH key
【Git】.gitignore文件语法以及修改后无效的解决办法
【Git】Authentication failed for 错误解决
【Git】SSL certificate problem: unable to get local issuer certificate错误的解决办法
【Git】error: RPC failed; curl 92 HTTP/2 stream 0 was not closed cleanly: PROTOCOL_ERROR