关于git的操作命令(一篇盖全),可不用,但不可不知!

前言:虽然 SourceTree / Fork / Github Desktop /Visual Studio Code自带的git工具 等等,这些工具操作很简单,用起来也很爽,但是基本git操作命令也是万万不能丢的,本文将带你记牢那些git命令,不用这些工具,也照样玩得飞起,开撸!

一:日常敲代码git大致流程图

虽然说咱们⽇常使⽤最频繁的操作命令就是下图这六个:

但实际上,如果想要熟练使⽤,有超过60多个命令需要去了解,下⾯则介绍下常⻅的的 git 命令

二:你想用的都在下面

1.配置方面

Git ⾃带⼀个 git config 的⼯具来帮助设置控制 git 之后,第⼀件事就是设置你的⽤户名和邮件地址,在我们安装完后续每⼀个提交都会使⽤这些信息,它们会写⼊到你的每⼀次提交中,设置提交代码时的⽤户信息命令如下:

PowerShell 复制代码
git config [--global] user.name "[name]" 
git config [--global] user.email "[email address]"

启动方面

初始git 项⽬有两个途径,分别是:

PowerShell 复制代码
git init [project-name] // 创建或在当前⽬录初始化⼀个git代码库
git clone url  // 克隆,根据仓库地址克隆⼀个项⽬和它的整个代码历史

2.日常基本操作

在⽇常⼯作中,代码常⽤的基本操作如下:

PowerShell 复制代码
git init 初始化仓库,默认为 master 分⽀ 
git add . 提交全部⽂件修改到缓存区 
git add <具体某个⽂件路径+全名> 提交某些⽂件到缓存区 
git diff  查看当前代码 add后,会 add 哪些内容 
git diff --staged查看现在 commit 提交后,会提交哪些内容 
git status 查看当前分⽀状态 
git pull <远程仓库名> <远程分⽀名> 拉取远程仓库的分⽀与本地当前分⽀合并 
git pull <远程仓库名> <远程分⽀名>:<本地分⽀名> 拉取远程仓库的分⽀与本地某个分⽀合并 
git commit -m "<注释>" 提交代码到本地仓库,并写提交注释 
git commit -v 提交时显示所有diff信息
git commit --amend [file1] [file2] 重做上⼀次commit,并包括指定⽂件的新变化

3.分支相关操作

PowerShell 复制代码
git branch 查看本地所有分⽀ 
git branch -r 查看远程所有分⽀ 
git branch -a 查看本地和远程所有分⽀ 
git merge <分⽀名> 合并分⽀ 
git merge --abort 合并分⽀出现冲突时,取消合并,⼀切回到合并前的状态 
git branch <新分⽀名> 基于当前分⽀,新建⼀个分⽀ 
git checkout --orphan <新分⽀名> 新建⼀个空分⽀(会保留之前分⽀的所有⽂件) 
git branch -D <分⽀名> 删除本地某个分⽀ 
git push <远程库名> :<分⽀名> 删除远程某个分⽀ 
git branch <新分⽀名称> <提交ID> 从提交历史恢复某个删掉的某个分⽀ 
git branch -m <原分⽀名> <新分⽀名> 分⽀更名 
git checkout <分⽀名> 切换到本地某个分⽀ 
git checkout <远程库名>/<分⽀名> 切换到线上某个分⽀ 
git checkout -b <新分⽀名> 把基于当前分⽀新建分⽀,并切换为这个分⽀

4.远程同步

远程操作常⻅的命令:

PowerShell 复制代码
git fetch [remote] 下载远程仓库的所有变动 
git remote -v 显示所有远程仓库 
git pull [remote] [branch] 拉取远程仓库的分⽀与本地当前分⽀合并 
git fetch 获取线上最新版信息记录,不合并 
git push [remote] [branch] 上传本地指定分⽀到远程仓库 
git push [remote] --force 强⾏推送当前分⽀到远程仓库,即使有冲突 
git push [remote] --all 推送所有分⽀到远程仓库

5.操作撤销

PowerShell 复制代码
git checkout [file] 恢复暂存区的指定⽂件到⼯作区 
git checkout [commit] [file]  恢复某个commit的指定⽂件到暂存区和⼯作区
git checkout . 恢复暂存区的所有⽂件到⼯作区 
git reset [commit] 重置当前分⽀的指针为指定commit,同时重置暂存区,但⼯作区不变 
git reset --hard 重置暂存区与⼯作区,与上⼀次commit保持⼀致 
git reset [file] 重置暂存区的指定⽂件,与上⼀次commit保持⼀致,但⼯作区不变 
git revert [commit]  后者的所有变化都将被前者抵消,并且应⽤到当前分⽀

// reset :真实硬性回滚,⽬标版本后⾯的提交记录全部丢失了 
// revert :同样回滚,这个回滚操作相当于⼀个提交,⽬标版本后⾯的提交记录也全部都有

6.存储操作

你正在进⾏项⽬中某⼀部分的⼯作,⾥⾯的东⻄处于⼀个⽐较杂乱的状态,⽽你想转到其他分⽀上进⾏ ⼀些⼯作,但⼜不想提交这些杂乱的代码,这时候可以将代码进⾏存储:

PowerShell 复制代码
git stash 暂时将未提交的变化移除 
git stash pop 取出储藏中最后存⼊的⼯作状态进⾏恢复,会删除储藏 
git stash list 查看所有储藏中的⼯作 
git stash apply <储藏的名称>  取出储藏中对应的⼯作状态进⾏恢复,不会删除储藏 
git stash clear 清空所有储藏中的⼯作 
git stash drop <储藏的名称>  删除对应的某个储藏

三.git提交规范

下面是相关的提交规范,供铁子们参考,当然一切以公司规范为准,仅供借鉴:

提交开头 功能 示例
feat 新增功能 feat(auth): 添加登录谷歌验证功能
fix 修复Bug fix: 登录问题修复
docs 文档变更 docs: 更改了***文档内容
style 代码样式调整 style: 调整首页布局
refactor 代码重构 refactor: 优化用户登录逻辑
test 测试相关 test: 增加用户登录功能的单元测试
chore 构建/工具变更 chore: 更新.gitignore文件
perf 性能优化 perf: 提高首屏加载速度
ci CI/CD配置变更 ci: CI配置文件修改
revert 回退提交 revert: 还原错误提交

四,送给大家一个git常用命令速查表,方便快速定位


文章若有不足之处,欢迎各位大神评论区交流,我是向北者,喜欢的话点个关注,我将持续为大家填补软肋!

相关推荐
hjt_未来可期1 小时前
js实现替换输入框中选中的文字
javascript·vue.js
之恒君1 小时前
JavaScript 垃圾回收机制详解
前端·javascript
是你的小橘呀1 小时前
像前任一样捉摸不定的异步逻辑,一文让你彻底看透——JS 事件循环
前端·javascript·面试
Tzarevich1 小时前
JavaScript 继承与 `instanceof`:从原理到实践
javascript
Cache技术分享1 小时前
260. Java 集合 - 深入了解 HashSet 的内部结构
前端·后端
前端老宋Running1 小时前
你的代码在裸奔?给 React 应用穿上“防弹衣”的保姆级教程
前端·javascript·程序员
汤姆Tom1 小时前
前端转战后端:JavaScript 与 Java 对照学习指南(第四篇 —— List)
前端·编程语言·全栈
FinClip1 小时前
当豆包手机刷屏时,另一场“静悄悄”的变革已经在你手机里发生
前端
前端老宋Running1 小时前
“求求你别在 JSX 里写逻辑了” —— Headless 思想与自定义 Hook 的“灵肉分离”术
前端·javascript·程序员