本文共 1331 字,大约阅读时间需要 4 分钟。
更改代码后,git push 发生错误?
注: 此时,使用 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就能解决这种问题,有2个方法解决
新建分支mywork -> reset主分支master -> 主分支master更新基线 -> 分支mywork merge 主分支master基线 -> 主分支masetr merge 分支mywork修改
此时, git branch查看所有分支:
主分支: master
工作分支: mywork(修改的内容,在mywork分支里有体现)
1) git log: 查看本地提交
2)、回退自己的提交(master分支上的,此时mywork分支保留了更改)
a. git reset: 回退自己的提交
b. git checkout: 还原修改的内容
或者直接使用: git reset --hard
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查看下,分支本地提交
1). 切换到master分支: git checkout master
2). 把mywork的修改merge到master: git rebase mywork
git push -u origin 提交。 此时,就不会出现 merger: *******************
重点来了,,,你也可以直接使用。
git pull --rebase
pull的时候,把服务器别人的代码, rebase到你的commit的下边。
如果发生冲突,解决方法,参考,方法1.4 中
(如果自动merge失败,此时git status查看哪个文件merge失败,打开该文件,手动修改冲突,执行git add 文件名 ,然后执行git rebase --continue)。