GIT冲突解决

GIT冲突解决

# 一般的代码冲突,我们直接vim改文件来修改
# 当出现文件冲突的时候, 我们希望仅保留某一来源的文件时可以使用如下操作

# 使用origin/master分支强制覆盖到本地
git reset --hard origin/master 

# 使用本地数据强制覆盖pull下来的冲突
git reset --hard HEAD

# 将指定文件强制还原到指定版本
git checkout commit_id /path/path

# 将test.log强制还原到stash0
git checkout stash@{0} test.log

# 将test.log强制还原到和master一直
git checkout origin/master test.log
  • 使用案例
20180409 14:05
今天在使用测试服务器中,遇到了一个代码冲突问题.
起因:
    我在一个新的分支lh_updateApp中对交易接口的代码和.po翻译文件进行了修改.
    而后在测试服务器上先更新了origin/master,然后pull下来了这个分支.
    由此.po文件产生了冲突
    其实在正式服务器上,我们是不会出现这种问题的, 因为正式服务器我们都是合到主分支
    然后在把主分支pull下来, 这次在测试服务器上,我们通过将不同的分支pull下来,所以才会产生错误冲突

处理过程:
    我在发现冲突后, 尝试使用git reset --hard origin/lh_updateApp来强制将本地代码替换.
    但是生了错误,而且我想如果在正式服务器上这个干的话也是比较危险的,应该寻求更合理的操作.
    git reset --hard 取消了本次pull更新
    然后使用fetch origin lh_updateApp代码,然后merge,让代码正常冲突.
    通过git status --short 查看冲突的代码
    再通过git checkout FETCH_HEAD FilePath 将单个冲突文件,强制覆盖为FETCH_HEAD例的版本.
    
解决方法:
    获取分支代码
    git fetch origin lh_updateApp
    合并代码
    git merge FETCH_HEAD
    查看代码状态
    git status --short
    将单个的冲突文件,覆盖为获取到的新版本里的文件
    git checkout FETCH_HEAD conf/lang/zh_TW/LC_MESSAGES/default.po

转载于:https://my.oschina.net/chinaliuhan/blog/3064973

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值