likes
comments
collection
share

Git 备查指南

作者站长头像
站长
· 阅读数 8

前言

常用的 Git 指令,一边整理一边复习,还顺便 get 了新的指令。真 · 温故而知新 😉

基础配置

1 查看、配置用户信息

  • 配置用户名:git config --global user.name "yourname"
  • 配置用户邮箱:git config --global user.email "youremail@qq.com"
  • 查看用户信息:git config --global --list
  • 查看用户名、邮箱:git config user.namegit config user.email

Git 备查指南

2 配置 ssh 🔑

配置 ssh 后,使用ssh 地址 clone 项目,无需再输入账号密码。一次配置,永久使用。😉

检查 ssh 是否存在

  • cd ~/.ssh ,找到 .ssh 文件夹
  • lsll ,查看是否存在 id_rsa.pub
  • cat id_rsa.pub ,获取秘钥

Git 备查指南

如果 ssh 不存在,那就 ——

生成秘钥 ssh-keygen -t rsa -C "your-email@qq.com" 生成后就可以通过上述方式找到 ssh,拷贝一下,接下来去 github ——

在 github 中添加秘钥 点击头像 → Settings → SSH and GPG keys → New SSH key → 黏贴 ssh-rsa 开头的串串 → 确定添加 → OK啦! 🎉

Git 备查指南

Git 备查指南

关于 ssh 的详细操作和解说,参考: www.liaoxuefeng.com/wiki/896043…


基础指令

1 仓库管理

  • 本地创建 git 仓库:git init
  • 本地仓库关联远程仓库:git remote add origin git@xxx.git 注意:关联后第一次推送时添加 -u 参数,即:git push -u origin master 作用:-u--up-stream)用来建立本地分支与远程某个分支的关联,形成一个管道,之后可简化命令,直接 git push
  • 克隆远程仓库:git clone git@xxx.git
  • 查看远程仓库地址:git remote -v
  • 查看远程仓库及分支信息:git remote show origin

2 分支管理

  • 查看当前分支:git branch
  • 查看所有分支:git branch -a
  • 创建分支:git branch xxx
  • 切换分支:git checkout xxx
  • 创建并切换分支:git checkout -b xxx (等同依次执行上面两个命令)
  • 删除分支:git branch -d xxx
  • 强制删除未合并的分支:git branch -D xxx
  • 本地清理远程已删除的分支:git remote prune
  • 删除远程分支(非默认分支):git push origin --delete xxx
  • 合并分支:git merge xxx
  • 变基:git rebase xxx
    • 参数 --continue :遇到冲突的情况,解决冲突后 continue
    • 参数--skip:跳过这次 rebase 操作

3 代码管理

  • 拉取和推送

    • 查看当前分支本地与远程对比:git status
    • 拉取新代码:git pull
    • 添加指定修改到暂存区:git add <file>
    • 添加所有修改到暂存区:git add .
    • 提交修改到暂存区:git commit -m '备注信息'
    • 推送到远程仓库:git push
    • 查看本次修改的代码:git diff
    • 摘取某个commit:git cherry-pick <commitId>
  • 撤销修改

    • 撤销工作区指定文件的修改:git restore <file>git checkout -- <file>
    • 撤销暂存区指定文件的修改:git restore --staged <file>git reset HEAD <file>
    • 撤销暂存区所有文件的修改:git reset HEAD
    • 回退到上一个commit:git reset HEAD^
    • 回退到指定commit:git reset <commitId>
    • 回滚某次提交:git revert <commitId> (新增一个commit抵消之前的commit)
  • 脏代码

    • 存储脏代码:git stash
    • 查看脏代码列表:git stash list
    • 取出最近一个 stash:git stash pop
    • 取出指定 stash:git stash pop@{0}
    • 删除指定 stash:git stash drop stash@{0}
  • 代码管理示意图

Git 备查指南

  • 版本回退示意图

Git 备查指南

4 标签管理

  • 打印所有标签:git tag
  • 打印匹配正则的标签:git tag -l test** (获取以test开头的分支)
  • 创建本地标签:git tag test-1.0.0
  • 创建带备注信息的本地标签:git tag -a test-1.0.0 -m "备注信息"
  • 推送标签到远程仓库:git push origin test-1.0.0
  • 推送所有标签到远程仓库:git push origin --tags
  • 删除本地标签:git tag -d test-1.0.0
  • 删除远程仓库标签:git push origin --delete test-1.0.0

5 Git Log

在整理文章的过程中,发现原来 git log 有这么多玩法,比如说 --pretty 支持自定义输出样式,-S可以按内容查询日志,还有个 git shortlog ,它甚至能按人员统计提交记录、还能排序。 这可比我能想象到的强大多了。

  • 分支对比:git log master..dev (找出 dev 比 master 多的 commit)
  • 查看本地提交记录:git loggit log dev
  • 查看远程提交记录:git log origingit log origin/dev
  • 按内容查找提交记录:git log -S "Hello World"
  • 查看每个用户的 commit 次数和注释 :git shortlog
    • 参数 -s:省略注释,仅返回一个统计数
    • 参数 -n:按照 commit 数量递减输出

可选参数

参数说明
--oneline格式化,一行显示,更简洁清晰的展示
--stat显示每次提交的文件增删数量
--graph图像化展示提交历史记录
--author指定用户
--pretty=format自定义输出格式
--since=<date> / --after=<date>指定日期之后
--until=<date> / --before=<date>指定日期之前

使用示例

查询指定用户某个时间区间的提交记录: git log --author="tangjinzhou" --after="2021/6/1" --before="2021/6/30" --oneline

Git 备查指南

自定义输出格式:git log --author="tangjinzhou" --pretty=format:"%h | %ad | %s"

Git 备查指南

自定义格式的参数说明

参数说明
%H提交对象(commit)的完整哈希字串
%h提交对象的简短哈希字串
%T树对象(tree)的完整哈希字串
%t树对象的简短哈希字串
%P父对象(parent)的完整哈希字串
%p父对象的简短哈希字串
%an作者(author)的名字
%ae作者的电子邮件地址
%ad作者修订日期(可以用-date= 选项定制格式)
%ar作者修订日期,按多久以前的方式显示
%cn提交者(committer)的名字
%ce提交者的电子邮件地址
%cd提交日期
%cr提交日期,按多久以前的方式显示
%s提交说明

更多的 Git Log 玩法:git-scm.com/docs/git-lo…


参考链接