git合并冲突文件代码
应用场景:
本地需要提交的代码和远程仓储中的代码不一致【多人协作常会遇到的问题】。
现在的主流编辑器都集成了git功能,所以合并冲突文件时看编辑器给展示的就好,这个等下会说。
-
首先先本地暂存一下我们修改的代码:
# 把代码放到堆栈中存储。 git stash save "20200916" # save "20200916" 就是给我们本次存储起一个名字,方便查找。【个人喜欢使用时间来备注】
-
获取远程仓储中的代码:
# 从远程获取代码并合并本地的版本 其实就是获取远程仓储最新代码 git pull # 题外话:git pull 其实就是 git fetch 和 git merge FETCH_HEAD 的简写。
-
把我们暂存在堆栈中的代码取出来:
# 默认获取堆栈中存储的最新的代码,就是堆栈中 0 号位置的代码 git stash apply # 如果想指定获取某次存储的: git stash apply n 即可。 n 特存储的堆栈序号(0,1,2,3...)。 # 如果不知道序号或者存储名字,可以通过: git stash list 查看。 # 删除存储:git stash drop stash@{n} # 例如:git stash drop stash@{1} 删除 1 号存储。 # 查看指定存储:git stash show stash@{n}
第三步执行完分为两种情况:
-
远程仓储中的代码和本地修改的代码不在同一行或者同一个文件,此时git会自动帮我们合并不同的代码。
-
如果git不知道怎么合并,此时我们只需要看我们的编辑器中列出来的冲突文件,然后进行修改即可。
例如:vscode编辑器的提示一般是这样的:
-
-
将所有要提交的文件添加到暂存区:
# 一般暂存所有文件时 add 后面跟 . 即可。 git add . # 如果是单个文件,则在 add 后面跟对应的文件名,例如:git add hello.js
-
将暂存区里的改动给提交到本地的版本库:
# "xxx"一般写本次提交的备注,都修改了什么。 git commit -m "xxxx" # 有时我们想把本次 commit 和 git上的issue相对应,我们可以这么做: # 提交代码的时候在 -m " " 里面把 fix issue 的编号带上, 用 #<编号> 的方式。 # 比如你修复的 #3 号问题,提交的时候用 git commit -m " #3 修复 xxx 问题"
-
将本地版本库推送到远程服务器 :
# 这个不多说,注意分支是否对应。 git push # git push 是简写,全写是:git push origin master 将本地版本库推送到远程服务器,origin是远程主机,master表示是远程服务器上的master分支和本地分支重名的简写,分支名是可以修改的。
至此,我们就成功的把本地修改代码和远程仓储中代码进行的冲突合并。