使用git bash软件
基本步骤
- 切换分支:
git checkout 分支名
- 合并分支:
git merge 分支名
- 提交
git push 提交分支
本地合并
使用ours和theirs解决冲突
-
查看冲突文件
git status
这个命令查看当前git bash的工作状态。如果有冲突,则git bash会暂停合并,直到你处理完所有的冲突。
标红的文件是冲突文件。 -
标记保留文件
git checkout --ours/theirs 文件路径
对于使用merge
和rebase
,使用方式相反,这里对于merge
。ours
代表保留当前分支文件。theirs
代表保留被合并分支文件。
-
标记文件已解决
git add 文件路径
对每个文件,标记保留版本后,都需要标记该文件已解决。 -
继续合并
git merge --continue
解决冲突文件后,需要手动令git bash继续执行合并操作。 -
编辑合并日志
合并成功后会自动生成一个此次merge的说明日志,如果没有需要修改或添加的,使用Vim语法关闭即可。 -
提交合并
正常add,commit并提交。
拉取时触发合并
使用 git pull
时,其实是自动执行了两个命令:
git fetch
将远程仓库拉取到本地git merge
合并远程仓库和本地仓库
所以更推荐使用 git fetch
而不是 git pull
。
但如果确实是使用了 git pull
并触发了合并,其实步骤与本地合并相同。
此时:
ours
代表本地仓库theirs
代表远程仓库
常见问题
Everything up-to-date
虽然合并了并且有更改,但提交时提示Everything up-to-date导致无法上传。
此时最稳妥,一定能解决的方法是新创建一个远程分支,然后将当前代码上传到新分支,再与目标分支合并。
- 创建新分支
git branch 分支名
- 切换到此分支
git checkout 分支名
后续步骤略
找不到远程分支
- 更新本地分支列表
git fetch
- 查看所有分支
git branch -a
标有remote的为远程分支。
参考文章
- 看不到git远程分支_git找不到远程分支-CSDN博客
- 详解git pull和git fetch的区别, 为什么推荐用git fetch_fetch和pull-CSDN博客
- 解决冲突 - Git教程 - 廖雪峰的官方网站
- 【已解决】git pull 显示 Already up-to-date,但文件并没有更新_git pull already up to date.-CSDN博客
- git 删除分支提示 The branch '***' is not fully merged_没有修改可the branch 'tangjx' is not fully merged. if y-CSDN博客
- Git:合并分支----git merge命令应用的三种情景-CSDN博客
- Git-优雅地解决冲突:使用ours和theirs_git ours-CSDN博客
- Git详细教程(五):查看分支、创建分支、合并分支_git 查看所有分支-CSDN博客
- git提交代码时出现Everything up-to-date的解决办法_git up-to-date-CSDN博客
评论区