news 2026/7/5 2:11:14

Git命令超全终极手册|从零到精通 开发/运维必备完整版教程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Git命令超全终极手册|从零到精通 开发/运维必备完整版教程

1. 命令简介

Git 是一个开源的分布式版本控制系统,由 Linus Torvalds 于 2005 年为管理 Linux 内核开发而创建。它旨在高效处理从小型到超大型项目的版本管理,具有速度快、设计简单、完全分布式、对非线性开发模式(数千个并行分支)的强大支持等优点。

作为目前世界上最流行的版本控制系统,Git 允许开发者在本地完整克隆代码仓库,支持离线工作、分支创建与合并,并可通过远程仓库(如 GitHub、GitLab、Gitee)进行协作。

2. 语法格式

Git 的基本命令格式如下:

git [--version] [--help] [-C <path>] [-c <name>=<value>] [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path] [-p | --paginate | --no-pager] [--no-replace-objects] [--bare] [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>] <command> [<args>]

在日常使用中,常采用简化格式:

git <子命令> [选项] [参数]

3. 常用选项及说明

全局选项

选项

说明

--version

显示 Git 版本信息。

--help

显示 Git 或特定子命令的帮助信息。

-C <path>

在开始 Git 命令前,切换到指定的路径 <path>。

-c <name>=<value>

为本次命令执行临时设置一个配置参数。

--git-dir=<path>

指定 Git 仓库的路径(即 .git 目录)。

--work-tree=<path>

指定工作区(工作树)的路径。

核心子命令

命令

说明

init

在当前目录初始化一个新的 Git 仓库。

clone

克隆(下载)一个远程仓库到本地。

add

将工作区的文件更改添加到暂存区。

commit

将暂存区的更改提交到本地仓库,创建一个新的版本记录。

status

查看工作区和暂存区的当前状态。

push

将本地提交推送到远程仓库。

pull

从远程仓库拉取更新并合并到当前分支(相当于 fetch + merge)。

fetch

从远程仓库下载最新的提交历史和文件,但不自动合并。

branch

管理分支,包括创建、列出、重命名、删除等。

checkout

切换分支,或恢复工作区的文件到某个版本。

merge

将一个分支的更改合并到当前分支。

rebase

变基,一种整合分支更改的替代方法,可以创造更线性的提交历史。

log

查看提交历史记录。

diff

显示工作区、暂存区或不同提交之间的差异。

stash

临时保存工作区和暂存区的修改,以便清理状态进行其他操作。

tag

管理标签,常用于标记发布版本。

remote

管理远程仓库的连接。

config

查看或设置 Git 的配置信息。

4. 示例用法

4.1 仓库初始化与克隆

初始化新仓库:

git init git init my-project

克隆远程仓库:

git clone https://github.com/user/repo.git git clone https://github.com/user/repo.git my-local-name git clone git@github.com:user/repo.git # SSH方式

4.2 基本工作流程

查看状态:

git status git status -s # 简洁模式

添加文件到暂存区:

git add file.txt git add . # 添加所有更改 git add *.js # 添加所有js文件

提交更改:

git commit -m "添加新功能" git commit -am "直接提交已跟踪文件" # 对已跟踪文件,跳过`git add`步骤

查看提交历史:

git log git log --oneline --graph --all # 图形化简洁显示 git log -p file.txt # 查看特定文件的历史及差异

4.3 分支管理

创建和切换分支:

git branch feature-x # 创建分支 git checkout feature-x # 切换分支 git checkout -b feature-x # 创建并切换到该分支

查看分支:

git branch # 本地分支 git branch -r # 远程分支 git branch -a # 所有分支(本地+远程)

合并分支:

git checkout main git merge feature-x

删除分支:

git branch -d feature-x # 安全删除(分支已合并) git branch -D feature-x # 强制删除(分支未合并)

4.4 远程操作

添加远程仓库:

git remote add origin https://github.com/user/repo.git

查看远程仓库:

git remote -v

推送代码:

git push origin main git push -u origin main # 设置上游分支,后续可简化命令

拉取更新:

git pull origin main git pull --rebase origin main # 使用变基方式拉取,保持历史线性

获取远程更新(不合并):

git fetch origin

4.5 撤销与恢复

撤销工作区修改:

git checkout -- file.txt

撤销暂存区文件(取消`git add`):

git reset HEAD file.txt

修改最后一次提交:

git commit --amend -m "新的提交信息"

回退到指定提交:

git reset --soft HEAD~1 # 回退提交,但保留工作区和暂存区的修改 git reset --hard HEAD~1 # 彻底回退,丢弃工作区和暂存区的修改(谨慎使用)

恢复已删除的分支:

git reflog # 查看所有操作记录,找到分支最后的提交哈希 git checkout -b recovered-branch <commit-hash>

4.6 标签管理

创建标签:

git tag v1.0.0 # 轻量标签 git tag -a v1.0.0 -m "版本1.0.0发布" # 附注标签

查看标签:

git tag git show v1.0.0

推送标签:

git push origin v1.0.0 git push origin --tags # 推送所有本地标签

删除标签:

git tag -d v1.0.0 # 删除本地标签 git push origin --delete v1.0.0 # 删除远程标签

4.7 配置设置

用户配置:

git config --global user.name "Your Name" git config --global user.email "your@email.com"

查看配置:

git config --list git config user.name

设置编辑器:

git config --global core.editor "vim"

设置别名:

git config --global alias.co checkout git config --global alias.br branch git config --global alias.ci commit git config --global alias.st status

5. 注意事项

  • 强制推送风险:git push -f 或 git push --force 会覆盖远程仓库的历史记录,如果其他人基于旧历史进行了工作,可能导致严重的协作问题。仅在确定需要时(如修复私有分支历史)使用,并提前与团队沟通。

  • 敏感信息保护:切勿将密码、API密钥、私钥等敏感信息提交到 Git 仓库。一旦提交,即使后续删除,也可能在历史记录中残留。建议使用 .gitignore 文件忽略敏感文件,或使用专门的密钥管理工具。

  • 大文件处理:Git 主要设计用于管理文本文件(如源代码),对于二进制大文件(如图片、视频、编译产物)的版本控制效率较低,可能导致仓库体积暴增。建议使用 Git LFS(Large File Storage)扩展或将其存放在专门的制品库中。

  • 提交信息规范:撰写清晰、有意义的提交信息,有助于团队协作和日后追溯。第一行作为简短摘要,空一行后补充详细描述。

  • 分支命名约定:团队应建立统一的分支命名规范(如 feature/xxx, bugfix/xxx, release/xxx),以便清晰识别分支目的。

  • 定期同步:在开始新工作前,使用 git pull 或 git fetch 同步远程最新更改,避免合并时产生过多冲突。

获取更多Linux学习资料请关注“阿成学长工具包”,对话框中输入2647获取

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/5 2:10:07

09102黄大年茶思屋榜文91期 第2题 TDD系统下的SRS与PMI联合信道重构

黄大年茶思屋榜文91期 第2题 TDD系统下的SRS与PMI联合信道重构 摘要 针对TDD系统单独依赖SRS或PMI测量精度不足、异类信息维度不统一的痛点&#xff0c;本文给出基于时频波束三维稀疏融合的现货级落地方案&#xff0c;在终端移动速度5km/h、SRS信噪比-15dB场景下&#xff0c;可…

作者头像 李华
网站建设 2026/7/5 2:08:42

CSDN文章如何轻松破百赞

【保姆级全攻略】CSDN文章轻松破百赞&#xff1a;从选题、写作、排版到运营&#xff0c;一套模板直接复制套用 摘要 很多程序员在CSDN兢兢业业写技术博客&#xff0c;文章阅读几百、收藏寥寥、点赞常年卡在10个以内&#xff0c;辛辛苦苦整理的干货无人认可。本文结合大量百赞爆…

作者头像 李华
网站建设 2026/7/5 2:07:41

云原生 AI 模型灰度:别把新模型一次性推给所有流量

云原生 AI 模型灰度&#xff1a;别把新模型一次性推给所有流量 一、模型灰度比普通服务更需要谨慎 普通服务灰度主要关注错误率、延迟和资源。AI 模型灰度还要关注答案质量、引用准确性、成本变化和用户反馈。新模型接口兼容&#xff0c;不代表业务效果一定更好。 模型上线如…

作者头像 李华
网站建设 2026/7/5 2:07:06

计算机Java毕设实战-中小型企业人事考勤薪资综合管理系统的设计与实现 数字化企业人力资源信息管理系统【完整源码+LW+部署说明+演示视频,全bao一条龙等】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/7/5 2:07:06

本地部署Codex+Cowart:实现AI绘画无限画布与精准编辑

&#x1f680; 30款热门AI模型一站整合&#xff0c;DeepSeek/GLM/Qwen 随心用&#xff0c;限时 5 折。 &#x1f449; 点击领海量免费额度 最近在折腾AI绘画工具时&#xff0c;发现了一个让我眼前一亮的组合&#xff1a; Codex Cowart 。如果你也厌倦了在Midjourney、Sta…

作者头像 李华
网站建设 2026/7/5 2:04:34

可穿戴设备数据的 AI 分析:从 PPG 信号解码到运动负荷的实时建模

可穿戴设备数据的 AI 分析&#xff1a;从 PPG 信号解码到运动负荷的实时建模 一、手腕上的实验室——从光电信号中提取运动生理特征 可穿戴设备&#xff08;智能手表/手环&#xff09;通过光电容积脉搏波&#xff08;PPG&#xff09;传感器以每秒 25~100 Hz 的频率采样手腕处毛…

作者头像 李华