遇到冲突了怎么解决? - Git 进阶指南
文章推薦指數: 80 %
你可以直接用编辑器打开冲突的源文件进行修改,但需要注意删除冲突标记,你也可以使用体验更加友好的Three-Way Merge 工具,借助 git mergetool 命令来完成。
Git进阶指南Search…前言概念GitSSHKeys配置GitAliasCheatSheetorigin与upstreamGitStash与gwipGitTag与DescribeSubtree与SubmoduleCherryPick的使用场景常见问题如何配置多个提交用户?如何撤销修改?遇到冲突了怎么解决?如何配置gitmergetool?fetchpullmergerebase的关系分支操作流示例其他问题汇总PoweredByGitBook遇到冲突了怎么解决?两个分支进行合并时,可能会遇到冲突,同时被修改的文件会进入bothmodified状态,需要解决冲突。
1、最快的办法大部分时候,「最快解决冲突」的办法是:直接选择当前HEAD的版本(ours),或合并进来的分支版本(theirs)。
1#使用当前分支HEAD版本,冲突源文件的<<<<<<#gco--ours34#使用合并分支版本,冲突源文件的>>>>>>>标记部分5gitcheckout--theirs67#标记为解决状态加入暂存区8gitadd#gaCopied!2、最普通的办法你可以直接用编辑器打开冲突的源文件进行修改,但需要注意删除冲突标记,你也可以使用体验更加友好的Three-WayMerge工具,借助gitmergetool命令来完成。
如何配置gitmergetool?请参见后续章节。
3、好的习惯以下好的习惯,可以减少代码的冲突的发生:在开始修改代码前先gitpull一下;将业务代码进行划分,尽量不要多个人在同一时间段修改同一文件;通过Gitflow工作流也可以提升git流程效率,减少发生冲突的可能性。
4、最复杂的情况如果你的项目周期比较长,还应该养成「定期rebase的习惯」,gitpull--rebase可以让分支的代码和origin仓库的代码保持兼容,同时还不会破坏线上代码的可靠性。
它的大概原理是,先将origin仓库的代码按origin的时间流在本地分支中提交,再将本地分支的修改记录追加到origin分支上。
如果发生冲突,则可以即时的发现问题并解决,否则到项目上线时再解决冲突,可能会发生额外的风险。
rebase大概的操作步骤如下:1#将当前分支的版本追加到从远程pull回来的节点之后2gitpull--rebase#gup34#若发生冲突,则按以上其他方法进行解决,解决后继续5gitrebase--continue#grbc67#直到所有冲突得以解决,待项目最后上线前再执行8gitpushorigin#ggp910#若多次提交修改了同一文件,可能需要直接跳过后续提交,按提示操作即可11gitrebase--skip#grbsCopied!需要注意的是,rebase默认以bog-standardflattening模式将提交的时间线进行扁平化处理,如果希望保留两个版本的合并记录,可以使用gitpull--rebase=preserve参数,或直接将该参数设置为全局配置:1gitconfig--globalpull.rebasepreserveCopied!常见问题-Previous如何撤销修改?Next-常见问题如何配置gitmergetool?Lastmodified3yragoCopylinkContents1、最快的办法2、最普通的办法3、好的习惯4、最复杂的情况
延伸文章資訊
- 1我在git merge的時候遇到了衝突,怎麼解決? - 人人焦點
接著我們checkout -b創建一個新的分支,在這個分支當中我們把test.txt之前的一行改成get conflict。然後我們同樣add commit。 最後,我們回到master分支, ...
- 2[筆記] Git 更新分支、解除衝突方法一覽 - 地瓜大的飛翔旅程
Git 若在push 到雲端時,發生衝突的解決方法. ... 故你可以使用git fetch 抓取遠端資料後,再做rebase 即可。修改完後,別忘記重新再git push 到遠端 ...
- 3合併發生衝突了,怎麼辦? - 為你自己學Git | 高見龍 - gitbook.tw
git merge dog Auto-merging index.html CONFLICT (content): Merge conflict in index.html ... 這問題看來是...
- 4本地分支衝突- git - W3HexSchool - 六角學院
這裡也來分享如何解決衝突,也附上本小節Git 範例程式碼. ... git merge dev Auto-merging all.css CONFLICT (content): Merge co...
- 56.解決合併的衝突【教學1 使用分支】 | 連猴子都能懂的Git入門 ...
git merge issue3 Auto-merging myfile.txt CONFLICT (content): Merge conflict in myfile.txt Automat...