一张脑图带你掌握Git命令

开发
工作之余,遇到Git上面一些问题,趁这次的机会,补一补Git基础知识。

 脑图👇

 

本文更多梳理的是Git常用命令,非原理篇,需要这部分知识的可以往下看。

一图解天下👇 首先我们的了解Git通常的操作流程,网上流行的不错一张图👇     Git经典流程图
基本概念   Git基本命令
基于上面的图,我们就有接下来一些概念👇 版本库👉.git 当我们使用git管理文件时,比如git init时,这个时候,会多一个.git文件,我们把这个文件称之为版本库。
.git文件另外一个作用就是它在创建的时候,会自动创建master分支,并且将HEAD指针指向master分支。
工作区 本地项目存放文件的位置
可以理解成图上的workspace
暂存区 (Index/Stage) 顾名思义就是暂时存放文件的地方,通过是通过add命令将工作区的文件添加到缓冲区
本地仓库(Repository) 通常情况下,我们使用commit命令可以将暂存区的文件添加到本地仓库
通常而言,HEAD指针指向的就是master分支
远程仓库(Remote) 举个例子,当我们使用GitHub托管我们项目时,它就是一个远程仓库。
通常我们使用clone命令将远程仓库代码拷贝下来,本地代码更新后,通过push托送给远程仓库。
Git文件状态
通常我们需要查看一个文件的状态

  1. git status 
  1. Changes not staged for commit 
  1. 表示的大概就是工作区有该内容,但是缓存区没有,需要我们git add 
  1. Changes to be committed 

  1. 一般而言,这个时候,文件放在缓存区了,我们需要git commit 
  1. nothing to commit, working tree clean 
这个时候,我们将本地的代码推送到远端即可
常见命令
git配置命令

Git配置命令
列出当前配置

  1. git config --list    

  列出Repository配置  

  1. git config --local --list 

  列出全局配置  

  1. git config --global --list 

  列出系统配置  

  1. git config --system --list 

  通过上述的命令,发现你并没有配置用户信息的话,接下来配置一下👇 配置用户名

  1. git config --global user.name "your name" 

配置用户邮箱

  1. git config --global user.email "youremail@github.com" 

分支管理   Git分支管理
查看本地分支

  1. git branch 

查看远程分支

  1. git branch -r 

查看本地和远程分支

  1. git branch -a 

从当前分支,切换到其他分支

  1. git checkout <branch-name
  2. // 举个例子 
  3. git checkout feature/tiantian 

创建并切换到新建分支

  1. git checkout -b <branch-name
  2. // 举个例子👇 
  3. git checkout -b feature/tiantian 

删除分支

  1. git branch -d <branch-name
  2. // 举个例子👇 
  3. git branch -d feature/tiantian 

当前分支与指定分支合并

  1. git merge <branch-name
  2. // 举个例子👇 
  3. git merge feature/tiantian 

查看哪些分支已经合并到当前分支

  1. git branch --merged 

查看哪些分支没有合并到当前分支

  1. git branch --no-merged 

查看各个分支最后一个提交对象的信息

  1. git branch -v 

删除远程分支

  1. git push origin -d <branch-name

重命名分支

  1. git branch -m <oldbranch-name> <newbranch-name

拉取远程分支并创建本地分支

  1. git checkout -b 本地分支名x origin/远程分支名x 
  2.  
  3. // 另外一种方式,也可以完成这个操作。 
  4. git fetch origin <branch-name>:<local-branch-name
  5. // fetch这个指令的话,后续会梳理 

fetch指令   Git命令fetch
我理解的就是将远程仓库内容更新到本地,最近与师姐开发项目过程中,使用的就是这个命令。 具体是这样子的👇 fetch推荐写法

  1. git fetch origin <branch-name>:<local-branch-name

一般而言,这个origin是远程主机名,一般默认就是origin。

  1. branch-name 你要拉取的分支

 

  1. local-branch-name 通常而言,就是你本地新建一个新分支,将origin下的某个分支代码下载到本地分支。
    👇

举个例子

  1. git fetch origin feature/template_excellent:feature/template_layout 
  2. // 你的工作目录下,就会有feature/template_layout 
  3. // 一般情况下,我们需要做的就是在这个分支上开发新需求 
  4. // 完成代码后,我们需要做的就是上传我们的分支 

fetch其他写法
将某个远程主机的更新,全部取回本地。

  1. git fetch <远程主机名> 

这样子的话,取回的是所有的分支更新,如果想取回特定分支,可以指定分支名

  1. git fetch <远程主机名> <分支名> 

当你想将某个分支的内容取回到本地下某个分支的话,如下👇

  1. git fetch origin :<local-branch-name
  2. // 等价于👇 
  3. git fetch origin master:<local-branch-name

花式撤销   Git花式撤销
撤销「工作区」修改👇

  1. git checkout -- 

暂存区文件撤销 (不覆盖工作区)

  1. git reset HEAD 

版本回退

  1. git reset --(soft | mixed | hard )  < HEAD ~(num) > | 

 

  1. 指令  作用范围 
  2. --hard  回退全部,包括HEAD,index,working tree 
  3. --mixed 回退部分,包括HEAD,index 
  4. --soft  只回退HEAD 

工作区命令 状态查询
查看状态

  1. git status 

查看历史操作记录

  1. git reflog 

查看日志

  1. git log 

文档查询 展示Git命令大纲

  1. git help (--help) 

展示Git命令大纲全部列表

  1. git help -a 

展示具体命令说明手册

  1. git help 

文件暂存 Git命令文件暂存
添加改动到stash

  1. git stash save -a “message” 

删除暂存

  1. git stash drop <stash@{ID}> 

查看stash列表

  1. git stash list 

删除全部缓存

  1. git stash clear 

恢复改动

  1. git stash pop <stash@{ID}> 

差异比较 Git文件比较
比较工作区与缓存区

  1. git diff 

比较缓存区与本地库最近一次commit内容

  1. git diff -- cached 

比较工作区与本地最近一次commit内容

  1. git diff HEAD 

比较两个commit之间差异

  1. git diff 

分支命名 Git分支管理规范
「master分支」 主分支,用于部署生产环境的分支,确保稳定性。
master分支一般由develop以及hotfix分支合并,任何情况下都不能直接修改代码。
「develop 分支」 develop为开发分支,通常情况下,保存最新完成以及bug修复后的代码。
开发新功能时,feature分支都是基于develop分支下创建的。
「feature分支」 开发新功能,基本上以develop为基础创建feature分支。
分支命名:feature/ 开头的为特性分支, 命名规则: feature/user_module、 feature/cart_module。
**这点我深有体会,我在网易,mentor就是这么教我的,**通常建一个feature分支。 「release分支」 release 为预上线分支,发布提测阶段,会release分支代码为基准提测。
「hotfix分支」 分支命名:hotfix/ 开头的为修复分支,它的命名规则与 feature 分支类似。
线上出现紧急问题时,需要及时修复,以master分支为基线,创建hotfix分支,修复完成后,需要合并到master分支和develop分支。 基本操作
有了上述的基本了解后,那么我们就来看看整体的一个流程吧。 创建本地仓库 git init

  1. git init 

链接本地仓库与远端仓库

  1. git remote add  origin 
  2.  
  3. origin默认是远端仓库别名  url 可以是「可以使用https或者ssh的方式新建」 

检查配置信息  

  1. git config --list 
  2. Git user name 与email     
  1. git config --global user.name "yourname" 
  2.  
  3. git config --global user.email  "your_email"        

 

成SSH密钥     

 

  1. ssh-keygen -t rsa -C "这里换上你的邮箱" 
  2.  
  3. cd ~/.ssh 里面有一个文件名为id_rsa.pub,把里面的内容复制到git库的我的SSHKEYs中 

常看远端仓库信息

  1. git remote -v 

远端仓库重新命名

  1. git remote rename old new 
提交到缓存区
  1. git add 全部上传到缓存区 
  1. git add指定文件 

提交到本地仓库

  1. git commit -m 'some message' 
提交远程仓库
  1. git push <远程主机名> <本地分支名>:<远程分支名> 
查看分支
  1. git  branch 
创建新分支
  1. git branch 
切换分支
  1. git checkout 
创建分支并切换
  1. git checkout -b 
删除分支
  1. git branch -d 
删除远程分支
  1. git push -d 
切换分支
  1. git checkout 

忽略文件 .gitignore
这个文件的作用,会去忽略一些不需要纳入Git管理这种,我们也不希望出现在未跟踪文件列表。 那么我们来看看如何配置该文件信息。  

  1. # 此行为注释 会被Git忽略 
  2.  
  3. # 忽略 node_modules/ 目录下所有的文件 
  4. node_modules 
  5.  
  6.  
  7. # 忽略所有.vscode结尾的文件 
  8. .vscode 
  9.  
  10. # 忽略所有.md结尾的文件 
  11. *.md 
  12.  
  13. # 但README.md 除外 
  14. !README.md 
  15.  
  16. # 会忽略 doc/something.txt 但不会忽略doc/images/arch.txt 
  17. doc/*.txt 
  18.  
  19. # 忽略 doc/ 目录下所有扩展名为txt文件 
  20.  
  21. doc/**/*.txt 

参考
git基本操作,一篇文章就够了!
Git 常用操作总结
您必须知道的 Git 分支开发规范
如何优雅地使用 Git
优雅的提交你的 Git Commit Message
详解git pull和git fetch的区别
十分钟的时间,武装你的代码库
「备忘录」60+Git常用命令行

 

 

 

责任编辑:姜华 来源: 前端时光屋
相关推荐

2021-02-07 09:01:10

Java并发编程

2014-10-09 09:43:05

虚拟机迁移

2019-09-11 10:12:12

华为

2020-11-27 06:28:55

Spring循环依赖

2015-03-10 10:15:27

AppleWatch开发Swift

2015-09-14 09:07:15

Java多线程

2018-03-09 14:59:02

F5应用交付

2015-09-23 10:04:03

开放数据

2015-10-29 15:09:32

信息图数据

2018-05-18 18:09:44

人工智能

2013-12-16 10:59:52

WiFi上锁WiFi被盗

2023-09-05 08:53:51

2018-02-13 14:56:24

戴尔

2015-06-24 10:51:10

iOS学习流程

2022-08-19 14:46:16

视觉框架

2021-09-29 11:30:01

大数据技术架构

2016-11-10 10:03:02

微软Power BI组件

2012-07-20 17:24:51

HTML5

2013-12-31 10:17:32

WiFi蹭网

2019-03-18 15:00:48

SQLJoin用法数据库
点赞
收藏

51CTO技术栈公众号