git merge/rebase冲突

在执行 git merge/rebase 的时候,有可能出现合并冲突。
这个时候,git会自动进入冲突合并状态(这个时候是一个脱节的checkout)。

这时,需要手工处理冲突。确认解决了冲突后,执行git add (相当于svn的 svn resolved,这个会让svn的用户不习惯), 所有的冲突解决完成后(已经对所有的冲突文件执行了git add), 使用了git commit -m'merged',(对于rebase 需要使用 git rebase --continue)那么git 将完成合并,并返回到合并前的checkout的分支去(不再是一个脱节的checkout)。

初学git的人,因为弄不清楚怎么使用,常常出现很多悬挂的commit(使用 git fsck --lost-found查看悬挂的commit)。不过这个不是什么问题,悬挂的commit因为过期(好像是30天), 最终被git gc给收走。如果想马上收走的话,可以执行:
git reflog expire --expire-unreachable=0 --all
git gc --prune=0
不过,不建议马上收走,因为不马上收走,让你有机会从错误的操作中恢复过来(比如错误的删除了一个分支,错误了reset了一个提交等)。况且悬挂的commit不会产生什么问题的,除了占用些磁盘空间外。
悬挂的commit是指,版本库中任何分支也无法到达的commit.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值