最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • git常用场景总结

    正文概述 掘金(哈哈0_0)   2021-01-25   431

    前言

    git在我们日常的开发过程中使用的频次还是非常的高的,但是git的命令繁多,我经常会突然想不起来某个命令该怎么输入,所以在这里根据平时常用的场景来整理一些了git操作,你可以根据所需的场景来查找你所需进行的git的操作,搭配command + f/ctlrl + f食用更佳~。

    需要注意的是,这里并不会详细讲解git的一些概念或者命令使用,不理解的一些地方建议读读官方文档。后续我可能会更新一些关于git的内容,有兴趣的小伙伴也可关注下~

    修改撤销

    在使用git的过程中撤销工作区和暂存区做的修改是常常要做的事情,如何撤销工作区或者暂存区的修改,参考如下内容:

    # 撤销工作区的修改,内容将会和最新的版本保持同步
    git checkout -- <file>
    # 撤销保存在暂存区的修改,将暂存区的内容放入工作区中
    git reset HEAD <file>
    

    版本回退

    有时候因为commit了错误的内容,我们需要回退版本,方法如下:

    # 有几个^就能回退几次
    # 不带参数的情况下会将工作区的内容和回退版本带来的差异都放进工作区
    git reset HEAD^ 
    # 使用--hard参数直接回退到之前的版本,所有内容都会重置
    git reset --hard HEAD^
    # 会保留工作区的内容同时将回退版本带来的差异保存到暂存区
    git reset --sort HEAD^
    
    # n回退的次数
    # 不带参数的情况下会将工作区的内容和回退版本带来的差异都放进工作区
    git reset HEAD^ 
    # 使用--hard参数直接回退到之前的版本,所有内容都会重置
    git reset--hard HEAD~n
    # 会保留工作区的内容同时将回退版本带来的差异保存到暂存区
    git reset --sort HEAD~n
    

    使用rebase合并commit

    随着开发工作的复杂化,我们commit提交记录会有很多冗余,这个时候就需要对commit做一些简化合并,让提交记录更加清晰。这个时候rebase这个命令可以很好的解决这个问题。

    // 两种方式都行看个人使用习惯
    // 这里的~后面的数字是需要合并的commit的数量
    git rebase -i HEAD~2
    
    git rebase -i <commit>
    

    输入上面的命令后(这里输入的是git rebase -i HEAD~2),就会出现下图的样子。到了这一步就需要除了第一行外的所有pick改了s,保存后即可进行下一步。 git常用场景总结

    上一步完成后会进入到如下界面,保留所需的commit message即可。保存后就完成了整个rebase流程。 git常用场景总结

    需要注意的是,rebase操作需要谨慎使用,最好是在没有push到远程仓库时使用,一旦push到了远程仓库,在主分支、开发分支等需要多人协作的重要分支不要进行rebase操作。如果在自己的开发分支一旦提交到远程分支rebase后,需要使用git push -f来覆盖掉原有提交。

    撤销rebase操作

    在某些情况下,不小心将不需要rebase的内容也rebase了,这个时候就需要撤销rebase操作

    # 查看git 操作记录
    git reflog
    

    使用git reflog会出现如下界面 git常用场景总结 然后回退到rebase操作前,比如说这个地方是7ace419

    git reset --hard 7ace419
    

    修改commit消息

    如果只是修改最近一次的commit的话很简单,只需要使用下面这个命令即可

    git commit --amend
    

    如果要修改更早的提交的话就又需要使用到rebase命令了,这里继续使用git rebase -i HEAD~2,还是上面那个界面 git常用场景总结
    将要修改的commit的pick修改为edit,保存后,返回命令行界面,使用git commit —amend修改commit消息,最后使用git rebase —continue完成合并。

    需要注意的是,修改之后commitid是会改变的。

    复制其他分支的部分commit到现在分支

    有时候需要同步其他分支的某些提交而不是全部的提交到某个分支

    # 复制单个commit
    git cherry-pick <commit>
    # 复制多个commit
    git cherry-pick <commithash> <commthhash2>
    

    用图形化的方式查看git记录

    有时候我们需要使用图形化的方式来更直观的看git记录,可以在git log后增加—graph 选项。

    # 用图形的话的方式看git历史
    git log --graph
    # 每一行是一次提交历史
    git log --graph --pretty=oneline
    # 每一行是一次提交历史 同时提交历史简化
    git log --graph --pretty=oneline --abbrev-commit
    

    重命名分支

    git branch -m <oldname> <newName>
    

    删除远程分支和本地分支

    有时候我们需要删除远程分支和本地分支的,比如说分支合并到主分支后,一般我们都需要删除被合并的那条分支,所以这里提供了删除远程分支和本地分支的步骤:

    # 删除本地分支 -d 会检查分支是否merge -D是强制删除
    git branch -d [branchname]
    git branch -D [branchname]
    # 删除远程分支
    git push origin --delete [branchname]
    

    有这样一种情况在其他地方删除了远程分支本地需要同步远程分支

    # 查看远程分支的跟踪情况
    git remote show origin
    

    Remote branches中如果有分支是stale话就需要用git remote prune同步远程分支的情况。 git常用场景总结

    # 同步远程分支
    git remote prune origin
    # 查看剩余哪些远程分支
    git branch -r
    

    需要注意的是在同步之后本地的分支是不会同步删除的需要自己使用git branch -d <branchname>清理。如果需要清理的分支比较多怎么办,可以使用下面这个方式:

    # 谨慎使用 建议在开发工作完成且已经提交到远程仓库的情况下使用
    git branch -a | grep -E -v 'develop|master' | xargs branch -d
    

    起源地下载网 » git常用场景总结

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元