赞
踩
客户端操作
场景一、远程仓库更新了代码,本地未pull 便修改了代码
1.本地未提交代码情况
i.直接回退代码(revert),pull
ii.直接pull,报错
点击三角下标重置(reset),远程代码覆盖本地代码
场景二、远程仓库更新了代码,本地未pull 便修改了代码,且commit【两者代码较远】
报错如下
点击pull-----远程仓库新增代码自动合并到本地,且本地新增代码保留,但是本地新增代码未push到远程仓库,需要再push才可更新到远程仓库
场景三、远程仓库更新了代码,本地未pull 便修改了代码,且commit【两者代码较近】
报错
点击pull报错,且本地与远程代码冲突
<<<<<<< HEAD
代码新增
=======
一个代码新增
>>>>>>> 5a5d4f30cbc9939368aa471fd989d91e2b8865c1
解决办法1:关闭报错页面(resolve)
自行处理,删除多余部分
代码新增
一个代码新增
重新提交,push
解决方法2:如果不是点resolve。而是点关闭和abort,文件报黄色感叹号,自行revert即可,然后push,报错了,再次pull,报错点击pull右侧三角下标,选reset,远程仓库代码覆盖本地代码
命令行处理
场景一、远程仓库更新了代码,本地未pull 便修改了代码
1.本地未提交代码情况
i.git checkout 2.txt 撤销修改
git pull origin dev dev 更新
ii.直接pull,未报错,但是远程新增代码没有更到本地代码里
场景二、远程仓库更新了代码,本地未pull 便修改了代码,且commit【两者代码较近】,push
$ git push origin dev
To 192.168.253.134:bigdata0810/bigdata0810.git
! [rejected] dev -> dev (non-fast-forward)
error: failed to push some refs to '192.168.253.134:bigdata0810/bigdata0810.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
$ git pull origin dev dev 更新
本地代码冲突(文件有黄色感叹号)
<<<<<<< HEAD
ffffff
=======
1111122333
>>>>>>> 856c7373753058590e1736457c6669781402964c
}
试一下自行处理(删除报错部分)----提交,推送----成功了
git add .
git commit -m "自己处理"
git push origin dev
场景三、远程仓库更新了代码,本地未pull 便修改了代码,且commit【两者代码较远】,push
git push origin dev
To 192.168.253.134:bigdata0810/bigdata0810.git
! [rejected] dev -> dev (fetch first)
error: failed to push some refs to '192.168.253.134:bigdata0810/bigdata0810.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
$ git pull origin dev dev 更新(远程代码更了下来,没有黄色感叹号,但是跳转到merge编辑页面,提交合并内容相关信息保存)
此时本地新增代码没有推送到远程仓库,需要推送
git push origin dev
成功-------结束
扩展
解决办法1:如果你想保留刚才本地修改的代码,并把git服务器上的代码pull到本地(本地刚才修改的代码将会被暂时封存起来)
$ git stash // 临时将工作区文件的修改保存至堆栈中
$ git pull origin master // 拉取服务器的代码
$ git stash pop // 将之前保存至堆栈中的文件取出来
解决办法2:如果你想完全地覆盖本地的代码,只保留服务器端代码,则直接回退到上一个版本,再进行pull:
$ git reset --hard // 回滚到上一个版本
$ git pull origin master
git部分代码(index.txt)merge
将dev 中代码merge到preview
git checkout dev
git pull
git checkout preview
git pull
git checkout dev project/code/file/index.txt
git commit -m “”
git push origin preview
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。