git解决冲突(超详细图文版及常用命令)

操作流程
pull add commit push

add commit pull push

详细过程----------------------------------------------------

本地未进行commit情况下
1、如果只有本地有修改 pull 不会有任何问题 会有如下提示 意思是已经更新了
git解决冲突(超详细图文版及常用命令)_第1张图片
此时正常add commit push即可

2、如果有多人修改 会有如下提示 意思为需要commit (注意add一样会如下提示,必须commit)
git解决冲突(超详细图文版及常用命令)_第2张图片

本地commit后
1、先pull 如果只有自己修改 则会如下提示 然后正常push
git解决冲突(超详细图文版及常用命令)_第3张图片

2、先pull 如果有多人修改 则分是否有冲突情况

2.1 没有冲突 分merge或者rebase操作方式

merge后 会提示如下图 意思 需要提交一次 请输入提交信息 按i输入 wq保存退出 然后push即可
git解决冲突(超详细图文版及常用命令)_第4张图片

rebase后 会提示如下信息 无需任何操作了 直接push即可
git解决冲突(超详细图文版及常用命令)_第5张图片

2.2 存在冲突 分merge 和rebase
merge后会提示如下图 意思为存在冲突 需要解决冲突 然后 进行 add commit 之后再push
git解决冲突(超详细图文版及常用命令)_第6张图片

rebase后会提示如下图 意思为存在冲突 其中需要解决冲突 然后add continue(注意不需要commit了) 之后再push
git解决冲突(超详细图文版及常用命令)_第7张图片

如果本地有多次commit,在有冲突情况下使用rebase会产生连续冲突
如上图 其中(master|REBASE 1/3) 代表本地分支(master正在合并中 当前是第一次,也就是第一次要解决冲突)
此时查看状态如下图 意思为可以选择使用–skip忽略冲突 使用–abort放弃rebase 或者解决冲突然后add再–continue
git解决冲突(超详细图文版及常用命令)_第8张图片

解决方法1、重复执行 (解决冲突 add continue) 直至没有冲突 push即可
下图为要执行add示意
git解决冲突(超详细图文版及常用命令)_第9张图片

下图为要执行rebase --continue示意
git解决冲突(超详细图文版及常用命令)_第10张图片

下图为全部解决示意
git解决冲突(超详细图文版及常用命令)_第11张图片

此时查看状态 为正常三次commit 执行push操作即可
git解决冲突(超详细图文版及常用命令)_第12张图片

解决方法2、使用 git rebase --abort 退出rebase 进行pull(也就是merge)自动合并 输入提交信息 push即可
解决方法3、再rebase前或者退出rebase 使用 git rebase -i 将本地多次commit合并为一个commit 然后再rebase 解决冲突 add continue push

注意如果使用图形工具解决冲突 图形工具里不要标记为解决 只要保存 如果不小心标记为解决了 及时查看状态进行解决

只要文件有修改就要add 所以上述操作如果文件有了变化就要add 没有则不需要

以上操作命令大部分为简写 可以查看下列详细操作命令进行使用

详细命令

git status  查看当前状态
git log  查看提交日志
git merge dev  合并dev分支至当前分支
git add .      添加当前目录全部文件至暂存区
git commit -m '测试'     提交,提交信息为测试
git push origin master  推送至远端分支(master为需要推送分支,按实际需要选择)
git pull origin master  合并远端分支至本地 (git pull 等于 git fetch + git merge)
git pull --rebase origin master rebase方式合并远端分支至本地
git branch 查看当前分支
git branch dev 创建dev分支  (dev可选)
git branch -d dev 删除dev分支
git branch -r 查看远程分支
git branch -a 查看所有分支 (包括远程分支)
git checkout master 切换至master分支
git checkout -b dev 创建dev分支并切换至dev分支
git checkout -b dev origin/dev 创建远程分支到本地
git restore file 丢弃工作区修改(file为具体文件名称)
git restore * 丢弃所有工作区修改
git restore --staged file  回退暂存区文件 不会更改文件内容
git rebase --continue   rebase后继续操作
git rebase --abort 退出rebase 操作


相关好文:
好文1
好文2
好文3

你可能感兴趣的:(git,github,java)