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项目代码
参考:
网友评论