git小记

4 篇文章 0 订阅
git rebase
  1. 如其意译,变基操作(改变分支依赖)
    通常,我们开发的时候从develop分支拉取一个新的feature分支进行开发;由于每个人的分支都是基于develop分支拉取的,当你开发一段时间之后,可能develop分支上已经有他人通过测试从test分支合入develop分支;此时,如果你要进行测试,准备何如test分支时,往往先要进行以下操作:

    git rebase develop
    

    该操作实际上是将你从develop分支拉去feature分支的节点移到了当前develop分支的节点,即当前feature分支是基于develop当前节点的;所以称为变基;
    当然,该功能也支持 不同的分支,比如你开始基于develop分支建立了feature分支,然后基于feature分支建立了module1分支,后来可能module1可复用并且要先于feature分支上线,需要让module1基于develop开发,此时就可以进行上述操作;

  2. 合并多个commit
    开发时有时会加入很多无效的commit,这对code review会造成一定困难;因此推向远端之前可以使用git rebase将无效commit进行合并;

    # 查询最近三次提交
    git log --oneline
    710e96df update3
    b2df4450 update2
    9881b8d0 update1
    

    如果我们需要合并最后两次提交信息,我们可以使用以下命令

    # 合并最近两次请求
    git rebase -i head~2 
    

    执行命令后会出现

  3. 使用rebase保持commit信息干净
    通常,我们拉去远端分支到本地时,会触发merge操作,同时在commit中会记录这次合并;但有时我们需要保持提交信息pure,不希望这些合并操作被记录,我们可以使用如下命令:

    git pull --rebase
    

    执行之后会出现一个vim编辑区,需要注意picksquash命令:pick会保留该commit提交,而squash会将该commit与上一个commit进行合并;所以只需要将无效的commit信息前的pick改为squash即可,然后保存进入下一步;
    在这里插入图片描述

    该步骤需要填写合并之后的commit内容,默认是

    # This is a combination of 2 commits.
    

    你只需要编辑该行即可;

  4. git rebase变基操作的撤销

    • 如果成功:使用git reflog查看包含rebase在内的commit信息;每个commit对应唯一的编号,比如head{12},使用git reset --hard head{12}即可恢复
    • 途中解决冲突时,如果需要继续,使用git rebase --continue,需要在解决冲突后先git add才能继续;如果需要结束,使用git rebase --abort操作终止,会恢复到rebase之前的节点;

git文件名大小写问题

git默认会忽略文件名的大小写问题;也就是说你只是修改文件名大小写变换的情况下,git status是无记录的,暂存区为空;

此时,可以使用git mv命令对文件重命名,这样才可以可以记录更改;
如:

git mv src/OcrTech.js src/orcTech.js

使用远程分支强制覆盖本地分支

有时候本地分支更改乱了,不容易恢复,需要使用远程分支覆盖本地分支,可以使用如下命令:

git reset --hard origin/分支名

修改最近一次提交的信息

git commit --amend 
展示本地分支与远端分支的对应关系
git remote show origin
彻底删除分支(删除本地追踪分支)
git remote prune origin

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Neil-

你们的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值