git rebase解决提交冲突

1、更改代码后,git push 发生错误?

git rebase解决提交冲突_第1张图片

注: 此时,使用 git pull: 更新代码,git 会自动merge不同的更新,

   a.  如果git 自动merge成功,再进行 git push操作就会成功。

   b.  如果git 自动merge失败,使用git status可以查看哪个文件 merge失败,需要手动修改冲突地方,再进行git add git commit操作,之后再git push

But,这种方法提交后,就会在提交记录里显示 merge: *********************,而git rebase就能解决这种问题,解决方法如下

 

方法1:

新建分支mywork -> reset主分支master -> 主分支master更新基线 -> 分支mywork merge 主分支master基线 -> 主分支masetr merge 分支mywork修改

1、git branch mywork: 新建分支

此时, git branch查看所有分支:

主分支: master

工作分支: mywork(修改的内容,在mywork分支里有体现)

2、reset主分支master

1)  git log: 查看本地提交

git rebase解决提交冲突_第2张图片

2)、回退自己的提交(master分支上的,此时mywork分支保留了更改)

a. git reset: 回退自己的提交

b. git checkout: 还原修改的内容

或者直接使用: git reset --hard

 

3、主分支master更新基线

git rebase解决提交冲突_第3张图片

4、分支mywork merge 主分支master基线

1).  切换到mywork分支, git checkout mywork

2).  git rebase master:  将master的更新,同步到mywork分支

     注: 这一步,是最重要的,git此时会自动merge master分支最新基线到mywork分支

     a. 如果自动merge成功,就不用管了

     b. 如果自动merge失败,此时git status查看哪个文件merge失败,打开该文件,手动修改冲突,执行git add 文件名 ,然后执行git rebase --continue

3). git log查看下,分支本地提交

git rebase解决提交冲突_第4张图片

5、主分支masetr merge 分支mywork修改

1). 切换到master分支: git checkout master

2). 把mywork的修改merge到master:  git rebase mywork

git rebase解决提交冲突_第5张图片

6、重新提交

      git push -u origin 提交。 此时,就不会出现 merger: *******************

 

7、操作流程图,如下

git rebase解决提交冲突_第6张图片

 

方法2:

重点来了,,,你也可以直接使用。

git pull --rebase

pull的时候,把服务器别人的代码, rebase到你的commit的下边。

如果发生冲突,解决方法,参考分支mywork merge 主分支master基线 失败出来。

你可能感兴趣的:(git)