git常见问题处理

好习惯:

为了确保每次都是最新的代码可以在编码前依次执行一下命令

git stash
git fetch
git rebase origin/master
git stash pop

实践中git上碰到的一些复杂情况的解决方法

场景1: 如果使用merge,导致在你的一系列commit中夹杂着其他人的commit(通过命令glol查看),这时我们需要做的是同步master(理解为:将夹杂的commit记录调到前面去)

步骤:

使用git rebase master ,获取到master的数据,这时分支名会变成一串不规则数字(理解为这边现在切换到了一个缓冲的分支)
在编辑器上处理冲突(通过比较冲突,看看是保存当前的还是保存传入的),处理完后需要git add . 提交缓存
如果看到命令行中有带一个❌,则使用git rebase --continue。如果没有❌,则使用git rebase --skip
直到分支名变回了原来的分支名,则说明同步master的冲突都处理成功了,可以查看glol检查一下
git rebase --abort 意思是回滚此次的rebase操作

场景2: 合并到master分支时,需要我们合并多个commit

步骤:

通过glol或者git log查看要合并几条commit,从最新的那条commit为1开始向下算,然后使用命令 git rebase -i HEAD~数字
除了最新的那个commit,其他的将pick前缀改为s,保存退出(成功情况下就会出现这次调整的那些commit列表,通过双击D删除掉我们不需要的commit备注,如果顺利,第三步可以跳过)
使用git commit --amentd(它只是修改当前HEAD里面的commit的message) 我们想要的那条commit备注作为这次提交到master上的commit备注(使用场景是在上一步没有删除完commit的记录,所以才需要手动修改一次)
通过glol检查如果已经合并为一条commit了以后,使用git push -f 强制推送覆盖远程上的内容

场景3: 如果git push XXX 提示错误failed to push some refs to(原因是因为远程的库和本地代码不一致,我们只需要将远程的同步下来)

步骤:

输入git pull --rebase origin master (合并远程库到本地,可能需要解决冲突,–rebase的意思是取消本地库中刚刚提交的commit,并把它接到更新后的库中)
场景4: 如果提交的commit了以后发现当前分支不是自己想要的分支,想切换分支,这时会报错(原因:当我们执行 checkout 操作的时候,git 会检查工作区是否存在未跟踪文件,这就是我们执行 checkout 的时候出现错误提示的原因。)
在这里插入图片描述
步骤:

再次git add .
git stash (这时你修改的项目都会不在掉,不要慌)
切换分支(git checkout 分支)
执行git stash pop (这时所有修改的文件又回来了)

**场景5:**当发生冲突,两个条分支已合并到一个点上时(本地分支和合并进来的分支都有多个commit时)

步骤:

先回退这个合并,使用命令 git reset --hard HEAD~1 将合并分为两条分支
通过合并当前分支的commit(master之前的都合并)
然后通过git fetch 拉取远程代码
再通过(git rebase 远程分支)注意这边指定一条远程分支拉取
本地编辑器上处理冲突(通过git add . git rebase --continue)
最后待分支名自动变回本地分支以后通过glol检查后,用git push -f 提交代码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值