什么?你还没有总结Git思维导图🎈

315 阅读4分钟

写了好多年代码了,工作中大多使用Git进行代码版本管理。但是提交代码的时候经常遇到一些Git问题,而需要去百度/google 对应的命令!今天就顺手总结一份最常用到的Git命令清单吧🎃 点击查看Git思维导图

一. 起源

  1. 通过文件夹进行版本管理
  2. 集中式版本控制系统-SVN
  3. 分布式版本控制系统-Git

二. 配置(git config)

2.1 --local

  • git config --local user.name '账户名'
  • git config --local user.email'邮箱'
  • git config --local --list

2.2 --global

  • git config --global user.name '账户名'
  • git config --global user.email '邮箱'
  • git config --global --list

三. .git 文件夹

3.1 HEAD 文件

  • HEAD 是一个引用,指向的是当前工作分支
  • 当处于"分离头指针"的状态时,HEAD 只想某一个具体的 commit

3.2 config 文件

存放与本地仓库相关的配置信息

  • user.name
  • user.email
  • 远程的 url
  • ................

3.3 refs 文件夹

3.3.1 heads

存储了当前 git 项目的所有本地分支

  • master/main
  • 本地分支名称 1
  • 本地分支名称 2
  • .........

3.3.2 tags 文件夹

存放所有标签

3.3.3 objects 文件夹

如果文件发生了变化, git 将对其进行压缩并将其存储在 object 文件夹

objects:存放对象

.git/objects/ 文件夹中的子文件夹都是以哈希值的前两位字符命名 每个 object 由 40 位字符组成,前两位字符用来当文件夹,后 38 位做文件。

  1. commit 对象
  2. tree 对象
  3. blob 对象

四. 操作

4.1 关联 Git 仓库

  • 关联远程仓库:git add remote add origin git 地址
  • 修改远程仓库地址:git remote set-url origin git 地址

4.2 配置公私钥

4.3 指定不需要 Git 管理的文件---.gitignore

4.4 最常用的操作

4.5 提交文件

  1. 工作区(即本地代码)
  2. git add(提交文件到暂存区)
  • git add .
  • git add -u
  • git add-A
  1. git commit -m '备注' (提交文件到 git 版本历史中去)

4.6 分支管理

4.6.1 查看分支

  • 查看本地分支:git branch
  • 查看远程分支:git branch -r
  • 查看本地和远程分支:git branch -a

4.6.2 删除分支

  • 删除本地分支:git branch -D 分支名称
  • 删除远程分支:git push origin -d 远程分支名称

4.6.3 创建分支

  • 基于当前分支创建新分支,并切换到新分支:git checkout -b 新分支名称
  • 切换分支:git checkout 分支名称

4.6.4 合并分支

  • 将远程分支与本地当前分支合并:git merge origin/远程分支名称
  • 本地其他分支与本地当前分支合并:git merge 其他分支名称

4.7 git fetch

4.8 git status

4.9 git push

4.10 git pull

4.11 文件重命名

  1. git mv 旧文件名 新文件名
  2. git commit -m '重命名了什么文件'

4.12 查看变更历史

  • git log --oneline
  • git log --graph
  • git log -1
  • git log -n4 --oneline
  • git log --graph --pretty=oneline --abbrev-commit
  • git log --oneline -n4 分支名称
  • .......

4.13 查看 commit 记录的类型

git cat-file -t 提交记录哈希值

4.14 查看 commit 记录的内容

git cat-file -p 提交记录哈希值

4.15 修改 commit 记录

  • 修改最新 commit 的 message:git commit --amend
  • git rebase -i commit记录号
    • 修改老旧 commit 的 message
    • 合并多个连续的 commit
    • 合并间隔的几个 commit

4.16 比较差异

  • 比较 HEAD 与历史 HEAD:git diff HEAD HEAD^1
  • 比较暂存区和 HEAD:git diff --cached
  • 比较工作区域暂存区:git diff
  • 比较工作区和 HEAD:git diff HEAD
  • 比较两个分支:git diff 分支名 1 分支名 2
    • 比较具体文件 如:git diff master develop index.html
  • 比较两个 commit 历史:git diff 哈希值 1 哈希值 2
    • 比较具体文件 如:git diff 哈希值 1 哈希值 2 index.html

4.17 文件恢复

  • 暂存区恢复成与 HEAD 一样:git reset HEAD 或 git restore --staged
  • 工作区恢复成与暂存区一样:git restore
  • 取消暂存部分文件:git restore --staged 文件名
  • 取消某些已提交的记录(恢复到某一个具体 commit)--慎用:git reset --hard commit 版本号

4.18 删除文件

  1. git rm 文件名
  2. git commit -m '删除了什么文件'

4.19 加塞临时任务的处理

  1. git stash
  2. git stash list
  3. 在当前分支或切换分支开始临时任务,做完后切换回当前分支
  4. git stash pop
  5. 重新开始之前的任务