重学git

作者: Terry_Qian | 来源:发表于2022-01-01 21:36 被阅读0次

1 前言

  • 题外话:十月份换工作,从B2B,B2C业务转向自己比较感兴趣的M2C(客户端App)领域,受益匪浅,后续文章且听我娓娓道来。
  • 从长期高强度流水线交付的工作模式下,完全依赖IDEA的git集成功能让我并没有关注到git如此美妙的设计,本文讲述一个从IDEA内置git快捷功能转向命令行Git操作的记录,只包含工作中使用的命令,精简不复杂,希望对你也有帮助。

2 常用命令

  • 每天拉取最新的dev代码并合并到自己的分支

    git pull
    # 合并develop到当前分支
    git merge develop
    
  • 提交代码

    git status
    git commit -am 'feat:daily task'
    git push
    
  • 分支切换

    # 检查当前分支是否有未提交的变更
    git status
    git checkout develop
    
  • 基于当前分支创建新的分支

    git checkout -b terry
    
  • push新分支到远程仓库

    git push -u origin terry
    # 或
    git push --set-upstream origin terry
    
  • 查看日志

    git log
    # q:退出
    
  • 打tag

    git checkout master
    git pull
    git tag
    # shift+g:翻至最后一页; q退出
    git tag v3.7.7
    git push --tags
    
  • 回滚

    # 找到需要撤销的commit_id, 复制, q:退出
    git log
    # revert是提交一次相反的记录,来抵消之前提交的记录,达到回滚的目的
    git revert 'commit_id'
    git push
    

3 特殊场景

  • stash用于临时保存和取出变更,可跨分支

    # 查看当前分支的变更
    git status
    # 临时保存变更
    git stash save 'tip1'
    # 查看stash存储
    git stash list
    # 取出
    git stash pop
    

    比如代码写到一半发现写错分支了,先存起来,切到正确的分支,再取出来

    git stash save 'tip'
    git checkount terry
    git stash pop
    
  • 线上bug紧急修复

    # 查看tag并找到最新tag shift+g:翻至最后一页; q退出
    git tag
    git checkount v3.7.7 -b hot-fix
    git commint -am 'fix:bug'
    # -u update
    git push -u origin hot-fix
    git tag v3.7.8
    git push --tags
    # 拿最新的v3.7.8再次上线发版 验证没有问题后,将hot-fix分支合并到develop并删除hot-fix分支
    git checkount develop
    git merge hot-fix
    
  • 多个commit合并成一个commit让log精简一点

    git log
    # 左开右闭,找到你需要保留的commit的前一个commit_id 复制; q:退出
    git rebase -i 'commit_id'
    # i:修改,把需要被合并的commit记录前的pick修改为s,s是squash挤压的首字母
    # 保存退出:esc -> : -> wq回车
    # 进入commit注释的vi界面,i编辑,把不需要的commit注释前面用#注释掉,只保留一个commit注释
    # 保存退出:esc -> : -> wq回车
    
    # 强制覆盖到远程的分支-f force暴力,强迫,此命令极度危险,慎用,仅限在自己分支上操作
    git push -f
    
  • (特殊场景)分支中含有大量commit,导致仓库存储变得很大(历史commit全部删除哦)

git checkout --orphan develop-tmp
# 备份仓库 -> 删除仓库 -> 重新新建一个同名仓库
git add .
git commit -am 'init'
git push origin -u develop-tmp
  • 仓库复制/仓库迁移,将本地的仓库推送到另一个仓库地址(分支、tag、commit)
git push --mirror https://xxxxx/newRepository.git

4 SSH密钥配置(拓展)

错误: remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.

使用github push tag的时候产生的报错,解决方案是使用ssh密钥配置,并且连接github时ssh密钥相比http有显著的速度提升。

  • 生成密钥

    ssh-keygen -t rsa -b 4096 -C "terry.qian@github.com"
    

-t:指定密钥的type

rsa:一种非对称加密算法

-b:指定密钥的bits长度为4096位

-C:指定密钥的Comment注释

  • 一路按回车即可

  • 查看密钥并找到公钥复制一下

    cd
    cd .ssh/
    ls
    cat id_rsa.pub
    
  • 打开github -> settings -> SSH and GPG keys -> New SSH Key -> 复制上公钥添加即可

  • 使用ssh链接clone项目代码


参考:

https://blog.csdn.net/qq_15957557/article/details/107022959

https://cloud.tencent.com/developer/article/1861466

相关文章

  • 重学Git

    面对"你真的会XXX吗?"的灵魂拷问,还真没勇气斩钉截铁地说我会。最近一直维护的项目来了一个新的需求,把项目两个不...

  • 重学git

    1 前言 题外话:十月份换工作,从B2B,B2C业务转向自己比较感兴趣的M2C(客户端App)领域,受益匪浅,后续...

  • 重学Git(1)

    仓库创建且管理 (1)创建新的仓库工作目录 (2)初始化工作目录为仓库 输出: (3)在当前的仓库下新增文件且添加...

  • Git备忘录-常用命令以及遇到的问题

    Git是前端常用工具,但对于还在自学中的前端,用的真是不多,导致用的时候忘记命令然后重学一遍。鉴于git原理与入门...

  • 重学Git(2)-操作命令清单备忘

    仓库配置 (1)显示当前的Git配置 (2)编辑Git配置文 (3)配置用户信息,用于提交代码标记用户信息 仓库初...

  • 感受英国的教育

    英国的教育注重学生自主的发展,注重学生兴趣的培养,注重学生实际能力的锻炼。为此学校教育的各个环节都注...

  • 知识分子学佛的通病

    能知不能行 重学理不重实证

  • 重学PHP

    Run your application: Read the documentation at https://s...

  • 重学pet

    刚知道这一期的觉知课程主题是沟通时,顿时就产生了不去的念头,可是因为怕麻烦,还是决定跟下去。在课堂上,明显觉得自己...

  • 重学HTML

    为什么要重学呢?因为感觉回到不出来这些问题: HTML是什么,HTML5是什么 HTML元素标签、属性都是什么概念...

网友评论

      本文标题:重学git

      本文链接:https://www.haomeiwen.com/subject/fnsaqrtx.html