当前位置: 首页 > news >正文

Git 常用命令速查表

一、 仓库初始化和配置

命令作用
git init在当前目录初始化一个新的 Git 仓库,创建 .git 文件夹。
git clone
(远程仓库地址/url)
克隆(下载)一个远程仓库及其所有的版本历史到本地 。[ssh\http]
git config --global user.name “名称”全局设置你的用户名(提交者信息)。
git config --global user.email “邮箱”全局设置你的邮箱地址(提交者信息)。
git config --list列出当前所有的 Git 配置。

二、 日常基本操作(单人开发核心)

命令作用
git status查看工作区和暂存区的状态
(哪些文件被修改、已暂存等)。这是最常用的命令。
git add
(文件名如:hello.txt)
将指定文件的修改添加到暂存区(Stage)。
git add . 或 git add -A将当前目录所有的修改添加到暂存区。
git commit -m **
“提交信息”**
将暂存区的内容提交到本地仓库,并附上提交说明。
git commit -am “描述”
“提交信息”
相当于 git add . + git commit -m,但对未跟踪的新文件无效。
git restore
(文件名如:hello.txt)
丢弃工作区中指定文件的修改(恢复到最近一次 git commit 或 git add 的状态)。(Git 2.23+)
git restore --staged
(文件名:hello.txt)
将文件从暂存区撤出(Unstage),但保留工作区的修改。(Git 2.23+)
git checkout(文件名:hello.txt)旧版命令,作用同 git restore ,用于丢弃工作区修改。
git reset HEAD (文件名:hello.txt)旧版命令,作用同 git restore --staged ,用于取消暂存。
git diff查看工作区和暂存区的差异(未 add 的修改)。
git diff --staged (文件名:hello.txt)查看暂存区和本地仓库的差异(已 add 但未 commit 的修改)。
git log查看当前分支的提交历史。
git log --oneline以简洁的单行模式查看提交历史。
git log --graph以拓扑图模式查看提交历史,非常适合查看分支合并情况

三、分支与合并

命令作用
git branch列出所有本地分支,当前分支前会有一个 * 号。
git branch -a列出所有分支(包括本地和远程分支)。
git branch 分支名创建一个新的分支
git checkout 分支名切换到指定分支
git switch 分支名切换到指定分支
(git checkout 的更清晰替代命令,专用于切换)
git checkout -b 新分支名创建 并立即 切换到新分支
git switch -c 新分支名创建 并立即 切换到新分支(git checkout -b 的现代替代)
git merge 分支名将指定 分支 合并 到当 前分支
git branch -d 分支名删除指定的分支(如果该分支已被合并)
git branch -D 分支名强制删除指定的分支(即使该分支未被合并)
git rebase 分支名变基,将当前分支的提交“移动”到另一个分支的最新提交之后,形成线性的历史。
查看分支
git branch命令可以查看本地分支。当前分支前面会有一个星号(*)。
git branch -r命令可以查看远程分支(线上分支)。
** git branch -a**命令可以查看所有分支(包括本地和远程)。

小总结

区分本地和远程分支的关键点:
命名约定:远程分支有 远程名/ 前缀(如 origin/main)
查看命令:
git branch - 只显示本地分支
git branch -r - 只显示远程分支
git branch -a - 显示所有分支
跟踪关系:使用 git branch -vv 查看本地分支与远程分支的关联

补充: 命名约定区分

Git 使用特定的命名约定来区分本地和远程分支:
本地分支:直接使用分支名称,如 main、develop、feature/login
远程分支:使用 远程仓库名/分支名 的格式,如 origin/main、origin/develop
常见的远程仓库名称:
origin - 默认的远程仓库名称
upstream - 常用于指向原始仓库(当你 fork 了一个项目时)
3. 查看分支详细信息
使用 git show-branch 命令可以查看分支的更多信息:

使用 git branch -vv 命令可以查看本地分支与远程分支的跟踪关系:
查看远程仓库信息
使用 git remote show 命令查看远程仓库的详细信息

四、 查看历史与日志

命令作用
git log查看当前分支的提交历史。
git log --oneline以简洁的单行模式查看提交历史。
git log --graph --oneline --all以图形化方式查看所有分支的提交历史,非常直观。
git show commit-id显示某一次提交的详细内容变化。
git blame 文件名逐行显示指定文件的每一行最后是谁修改的。
git diff查看工作区与暂存区的差异(未 add 的修改)
git diff --staged查看暂存区与最新一次提交的差异(已 add 的修改)

五、 提交描述

命令作用
git commit -m “提交信息”将暂存区的内容提交到本地仓库,创建一个新的版本记录
git commit -am “提交信息”组合操作:将所有已跟踪且修改的文件添加到暂存区并提交
(注意: 对未跟踪的新文件无效)

六、 撤销与回退(重要且易错)

谨慎使用这些命令,尤其是在公共分支上。

命令作用风险
git restore 文件丢弃工作区的修改(危险!修改将永久丢失)。
git checkout .丢弃所有工作区的修改(非常危险!)。非常高
git reset --soft commit-id回退到某个提交,但保留工作区和暂存区的内容。适合重新提交。
git reset --mixed commit-id默认模式。回退到某个提交,保留工作区内容,但重置暂存区。
git reset --hard commit-id彻底回退到某个提交,丢弃工作区和暂存区的所有内容。极其危险!非常高
git revert commit-id创建一个新的提交来撤销指定的提交。这是一种安全的撤销方式,因为它不会重写历史。
git commit --amend修补提交,将暂存区的修改合并到上一次提交中,可以修改提交信息。

七、 临时 存储/保存现场

命令作用
git stash 或 git stash push将当前工作区和暂存区的修改临时储藏起来,让工作区变干净。
git stash list查看所有的储藏列表。
git stash pop应用最近一次的储藏并将其从栈中删除。
git stash apply应用某个储藏,但不将其从栈中删除。
git stash drop删除指定的储藏。
git stash save “message”保存现场并添加说明信息。
git stash apply stash@{n}恢复指定的现场(如 stash@{0}),但不删除记录。
git stash drop stash@{n}删除指定的现场记录。

八、 远程协作

命令作用
git remote add origin “远程仓库地址”关联一个远程仓库,并为其起别名为 origin(通常默认就用这个)
git push -u origin “分支名”将本地分支的提交推送到远程仓库,-u 表示建立追踪,后续可直接 git push
**git push **推送当前分支到其关联的远程分支(如果已建立追踪)
**git pull **拉取远程分支的更新并合并到当前分支(=git fetch + git merge)
git fetch仅从远程仓库获取最新版本到本地,但不自动合并(更安全,可先检查再合并)
git clone “远程仓库地址”克隆(下载)远程仓库到本地(也属于此分类)
git remote -v查看已配置的远程仓库地址(显示 fetch 和 push 的 URL)。
git remote add “name” “url”添加一个新的远程仓库地址,并为其起一个别名(通常默认为 origin)。
git fetch “remote”从远程仓库获取最新内容到本地(如下载分支、标签),但不会自动合并到工作区。
git pull remote “branch”从远程拉取代码并立即合并到当前分支。相当于 git fetch + git merge。
git push remote “branch”将本地分支的提交推送到远程仓库。
git push -u remote “branch”推送并将本地分支与远程分支建立追踪关系(-u 是 --set-upstream 的缩写),之后可以直接用 git push。
git push origin --delete “branch”删除远程仓库的指定分支。
git push origin --delete “branch”删除远程仓库的指定分支。

八、 其他

命令作用
git tag 标签名为当前提交打上一个轻量级标签(常用于版本发布,如 v1.0.0)
.gitignore 文件不是一个命令,而是一个配置文件。在里面写入文件或目录模式,Git 就会自动忽略它们

小贴士

• origin 是克隆仓库时 Git 默认给远程仓库起的别名。
• master 或 main 是 Git 初始化仓库时默认创建的主分支名称。
• HEAD 是一个指针,它总是指向当前所在的本地分支的最新提交。
• 谨慎使用 git reset --hard 和 git push -f,这些命令会覆盖历史,可能导致协作问题或数据丢失。
• git pull 和 git fetch 的区别:fetch 更安全,它只下载不同步的提交,让你检查后再手动合并;pull 是自动合并,有时可能会产生冲突需要你解决。

使用建议

勤 commit:提交频率可以很高,每个小功能完成都可以是一次提交,便于回退和追踪。
写好的提交信息:-m 后的描述信息要清晰明了,说明本次提交的目的。
push 前先 pull:在推送代码到远程前,先拉取一下远程的最新代码,避免冲突。
理解工作区、暂存区、仓库:这是 Git 的核心概念,理解了它们就能更好地使用 add, commit, status, diff 等命令。
大胆使用分支:分支开销极小,为新功能、修复 Bug 创建独立分支是推荐的工作流(如 Git Flow)。
希望这份列表能对您有所帮助!

http://www.dtcms.com/a/388846.html

相关文章:

  • Day45 51单片机UART串口通信与数码管时钟系统
  • 企业级图像AIGC技术观察:Seedream 4.0 模型能力与应用场景分析
  • Kurt-Blender零基础教程:第2章:建模篇——第2节:什么是修改器与建模马拉松
  • fbx 导入到 blender 出现很多黑色虚线的解决方法
  • 记力扣.2779 数组的最大美丽值 练习理解
  • Day26_【深度学习(6)—神经网络NN(2)前向传播的搭建案例】
  • 古老的游戏之竞技体育
  • CURSOR平替(deepseek+VScode)方案实现自动化编程
  • java对电子发票是否原件的快速检查
  • 贪心算法应用:顶点覆盖问题详解
  • Odoo中非库存商品的高级自动化采购工作流程
  • 缺少自动化测试会对 DevOps 带来哪些风险
  • 深入解析 Python 中的 __pycache__与字节码编译机制
  • SEO 优化:元数据 (Metadata) API 和站点地图 (Sitemap) 生成
  • postman+Jenkins进行API automation集成
  • 【算法磨剑:用 C++ 思考的艺术・单源最短路收官】BF/SPFA 负环判断模板 + 四大算法全总结
  • Flink的介绍及应用
  • 微信小程序插屏广告(InterstitialAd)全解析与实战应用案例
  • 格雷希尔G70R系列快速密封连接器+GT系列软管组件的配套组合方案,在新能源汽车老化测试的应用
  • 【Debug日志| 随机下降】
  • 滑动窗口法的优化与实战——力扣209.长度最小的子数组
  • 【Spring Boot 报错已解决】org.yaml.snakeyaml.scanner.ScannerException 报错原因与解决方案
  • 国家统计局数据读取——数据读取——清洗数据06
  • 基于 scratch 构建简单镜像
  • Web安全的暗角:10大易忽略逻辑漏洞解析!
  • 矩阵奇异值分解算法(SVD)详解
  • 【FreeRTOS】 二值信号量与互斥量(CMSIS-RTOS v2 版本)
  • Qt C++ :Qt全局定义<QtGlobal>
  • 【STL源码剖析】从源码看 list:从迭代器到算法
  • MySQL 专题(三):事务与锁机制深度解析