快速掌握Git命令基础知识 进阶必备哦

目录
文章目录隐藏
  1. 基本概念
  2. Git 文件状态
  3. 常见命令
  4. 基本操作
  5. 忽略文件 .gitignore
  6. 结语

最近在头条工作之余,遇到 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 文件状态

  • 通常我们需要查看一个文件的状态
git status
  • Changes not staged for commit
    • 表示得大概就是工作区有该内容,但是缓存区没有,需要我们git add
  • Changes to be committed
    • 一般而言,这个时候,文件放在缓存区了,我们需要git commit
  • nothing to commit, working tree clean
    • 这个时候,我们将本地的代码推送到远端即可

常见命令

git 配置命令

git 配置命令

列出当前配置

git config --list

列出 Repository 配置

git config --local --list

列出全局配置

git config --global --list

列出系统配置

git config --system --list

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

配置用户名

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

配置用户邮箱

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

分支管理

分支管理

  • 查看本地分支
git branch
  • 查看远程分支
git branch -r
  • 查看本地和远程分支
git branch -a
  • 从当前分支,切换到其他分支
git checkout <branch-name>
// 举个例子
git checkout feature/tiantian
  • 创建并切换到新建分支
git checkout -b <branch-name>
// 举个例子👇
git checkout -b feature/tiantian
  • 删除分支
git branch -d <branch-name>
// 举个例子👇
git branch -d feature/tiantian
  • 当前分支与指定分支合并
git merge <branch-name>
// 举个例子👇
git merge feature/tiantian
  • 查看哪些分支已经合并到当前分支
git branch --merged
  • 查看哪些分支没有合并到当前分支
git branch --no-merged
  • 查看各个分支最后一个提交对象的信息
git branch -v
  • 删除远程分支
git push origin -d <branch-name>
  • 重命名分支
git branch -m <oldbranch-name> <newbranch-name>
  • 拉取远程分支并创建本地分支
git checkout -b 本地分支名 x origin/远程分支名 x

// 另外一种方式,也可以完成这个操作。
git fetch origin <branch-name>:<local-branch-name>
// fetch 这个指令的话,后续会梳理

fetch 指令

fetch 指令 

我理解的就是将远程仓库内容更新到本地,最近与同事开发项目过程中,使用的就是这个命令。

具体是这样子的👇

fetch 推荐写法

git fetch origin <branch-name>:<local-branch-name>
  • 一般而言,这个 origin 是远程主机名,一般默认就是 origin。
  • branch-name 你要拉取的分支
  • local-branch-name 通常而言,就是你本地新建一个新分支,将 origin 下的某个分支代码下载到本地分支。

举个例子👇

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

fetch 其他写法

  • 将某个远程主机的更新,全部取回本地。
git fetch <远程主机名>
  • 这样子的话,取回的是所有的分支更新,如果想取回特定分支,可以指定分支名👇
git fetch <远程主机名> <分支名>
  • 当你想将某个分支的内容取回到本地下某个分支的话,如下👇
git fetch origin :<local-branch-name>
// 等价于👇
git fetch origin master:<local-branch-name>

花式撤销

花式撤销

  • 撤销工作区修改
git checkout --
  • 暂存区文件撤销 (不覆盖工作区)
git reset HEAD
  • 版本回退
git reset --(soft | mixed | hard ) < HEAD ~(num) > |

版本回退

状态查询

  • 查看状态
git status
  • 查看历史操作记录
git reflog
  • 查看日志
git log

文档查询

  • 展示 Git 命令大纲
git help (--help)
  • 展示 Git 命令大纲全部列表
git help -a
  • 展示具体命令说明手册
git help

文件暂存

文件暂存

  • 添加改动到 stash
git stash save -a “message”
  • 删除暂存
git stash drop stash@{ID}
  • 查看 stash 列表
git stash list
  • 删除全部缓存
git stash clear
  • 恢复改动
git stash pop stash@{ID}

差异比较

差异比较

  • 比较工作区与缓存区
git diff
  • 比较缓存区与本地库最近一次 commit 内容
git diff -- cached
  • 比较工作区与本地最近一次 commit 内容
git diff HEAD
  • 比较两个 commit 之间差异
git diff <commit ID><commit ID>

分支命名

分支命名 
master 分支

  1. 主分支,用于部署生产环境的分支,确保稳定性。
  2. master 分支一般由 develop 以及 hotfix 分支合并,任何情况下都不能直接修改代码。

develop 分支

  1. develop 为开发分支,通常情况下,保存最新完成以及 bug 修复后的代码。
  2. 开发新功能时,feature 分支都是基于 develop 分支下创建的。

feature 分支

  1. 开发新功能,基本上以 develop 为基础创建 feature 分支。
  2. 分支命名:feature/ 开头的为特性分支, 命名规则: feature/user_module、 feature/cart_module。

这点我深有体会,我在头条,mentor 就是这么教我的,通常建一个 feature 分支。

release 分支

  1. release 为预上线分支,发布提测阶段,会 release 分支代码为基准提测。

hotfix 分支

  1. 分支命名:hotfix/ 开头的为修复分支,它的命名规则与 feature 分支类似。
  2. 线上出现紧急问题时,需要及时修复,以 master 分支为基线,创建 hotfix 分支,修复完成后,需要合并到 master 分支和 develop 分支。

基本操作

有了上述的基本了解后,那么我们就来看看整体的一个流程吧。

  • 创建本地仓库 git init
    git init
  • 链接本地仓库与远端仓库
    git remote add origin
    
    origin 默认是远端仓库别名 url 可以是可以使用 https 或者 ssh 的方式新建
  • 检查配置信息
    
    
    • git config –list
  • Git user name 与 email
    
    

    git config –global user.name “yourname”

    git config –global user.email “your_email”

  • 生成 SSH 密钥
    
    

    ssh-keygen -t rsa -C “这里换上你的邮箱”

    cd ~/.ssh 里面有一个文件名为 id_rsa.pub,把里面的内容复制到 git 库的我的 SSHKEYs 中

  • 常看远端仓库信息
    git remote -v
  • 远端仓库重新命名
    git remote rename old new
  • 提交到缓存区
    git add . 全部上传到缓存区
    git add 指定文件
  • 提交到本地仓库
    git commit -m 'some message'
  • 提交远程仓库
    git push <远程主机名> <本地分支名>:<远程分支名>
  • 查看分支
    git branch
  • 创建新分支
    git branch
  • 切换分支
    git checkout
  • 创建分支并切换
    git checkout -b
  • 删除分支
    git branch -d
  • 删除远程分支
    git push -d
  • 切换分支
    git checkout

忽略文件 .gitignore

这个文件的作用,会去忽略一些不需要纳入 Git 管理这种,我们也不希望出现在未跟踪文件列表。

那么我们来看看如何配置该文件信息。

# 此行为注释 会被 Git 忽略

# 忽略 node_modules/ 目录下所有的文件
node_modules

# 忽略所有.vscode 结尾的文件
.vscode

# 忽略所有.md 结尾的文件
*.md

# 但 README.md 除外
!README.md

# 会忽略 doc/something.txt 但不会忽略 doc/images/arch.txt
doc/*.txt

# 忽略 doc/ 目录下所有扩展名为 txt 文件

doc/**/*.txt

结语

以上就是今天关于 Git 命令基础知识的全部内容,如果你觉得这篇内容对你挺有有帮助的话,转发出去,让更多的人也能看到这篇内容。

更多 Git 内容可以看我之前的文章:

前端开发超实用的 GIT 教程

Git 入门与进阶教程之 Git 基础

Git 入门与进阶教程之 GitHub

Git 命令 Xmind 图下载:《项目常用 git 命令 Xmind 图整理个人笔记分享

「点点赞赏,手留余香」

0

给作者打赏,鼓励TA抓紧创作!

微信微信 支付宝支付宝

还没有人赞赏,快来当第一个赞赏的人吧!

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
码云笔记 » 快速掌握Git命令基础知识 进阶必备哦

发表回复