Git 常用命令指南

ops/2025/3/17 15:18:12/

本文档旨在提供 Git 的常用命令及其使用示例,涵盖全局参数配置、获取本地仓库、基本概念、本地仓库操作、远程仓库操作和分支操作等内容。


1. 全局参数配置

Git 允许用户配置全局参数,以便在所有的仓库中共享这些设置。

<BASH>

# 设置用户名
git config --global user.name "Your Name"# 设置邮箱
git config --global user.email "your.email@example.com"# 查看所有配置
git config --list# 查看特定配置
git config user.name# 设置默认编辑器为 VSCode
git config --global core.editor "code --wait"# 设置默认的合并工具
git config --global merge.tool vscode# 启用颜色输出
git config --global color.ui auto

2. 获取本地仓库

初始化仓库

<BASH>

# 在当前目录初始化一个新的 Git 仓库
git init

克隆仓库

<BASH>

# 克隆远程仓库到本地
git clone <repository_url># 克隆指定分支
git clone -b <branch_name> <repository_url>

3. 基本概念

Git 是一个分布式版本控制系统,用于跟踪文件的变化并协作开发。为了更好地理解 Git 的工作机制,以下是 Git 中的一些核心概念:

3.1 工作区(Working Directory).git所在目录就是工作区

  • 工作区是用户当前正在编辑的目录,包含项目的所有文件和文件夹。
  • 工作区中的文件可以是未跟踪的文件(未被 Git 管理)或已跟踪的文件(已纳入 Git 管理)。
  • 在工作区中修改文件后,需要通过 git add 将更改添加到暂存区。

3.2 暂存区(Staging Area / Index)

  • 暂存区是一个临时区域,用于保存用户打算提交的更改。
  • 通过 git add 命令将工作区中的修改添加到暂存区。
  • 暂存区允许用户选择性地提交某些更改,而不是一次性提交所有修改。
  • 可以通过 git status 查看暂存区和工作区的状态。

3.3 本地仓库(Local Repository)

  • 本地仓库是 Git 存储项目历史记录的地方,通常位于项目根目录下的 .git 文件夹中。
  • 每次通过 git commit 提交更改时,Git 会将暂存区的内容保存到本地仓库,并生成一个唯一的提交记录(Commit)。
  • 本地仓库包含了项目的完整历史记录、分支信息、标签等。

3.4 提交(Commit)

  • 提交是 Git 中的一个基本单位,代表一次对项目的更改。
  • 每次提交都会生成一个唯一的 SHA-1 哈希值,用于标识该提交。
  • 提交包含以下信息:
    • 作者和提交者的信息。
    • 提交的时间戳。
    • 提交的更改内容(通过 diff 查看)。
    • 提交的注释信息(通过 git commit -m 添加)。

3.5 远程仓库(Remote Repository)

  • 远程仓库是托管在服务器上的 Git 仓库,用于团队协作和代码共享。
  • 通过 git clone 命令将远程仓库克隆到本地,或者通过 git remote add 添加新的远程仓库。
  • 通过 git push 将本地仓库的更改推送到远程仓库,通过 git pull 或 git fetch 获取远程仓库的更改。
  • 常见的远程仓库托管平台包括 GitHub、GitLab 和 Bitbucket。

3.6 分支(Branch)

  • 分支是 Git 中用于并行开发的核心功能。
  • 默认情况下,Git 会创建一个 master 或 main 分支。
  • 每个分支代表一个独立的开发线,可以在分支上进行修改而不影响其他分支。
  • 通过 git branch 创建新分支,通过 git checkout 切换分支,通过 git merge 合并分支。
  • 分支的轻量级特性使得 Git 在并行开发中非常高效。

3.7 标签(Tag)

  • 标签是 Git 中用于标记特定提交的功能,通常用于发布版本(如 v1.0.0)。
  • 标签分为轻量标签(Lightweight Tag)和附注标签(Annotated Tag)。
    • 轻量标签:只是一个指向特定提交的指针。
    • 附注标签:包含额外的信息,如标签名、作者、日期和注释。
  • 通过 git tag 创建标签,通过 git push --tags 将标签推送到远程仓库。

3.8 HEAD

  • HEAD 是一个指针,指向当前工作区所在的分支或提交。
  • 通常情况下,HEAD 指向当前分支的最新提交。
  • 通过 git checkout <commit> 可以分离 HEAD,使其直接指向某个提交而不是分支。

4. 本地仓库操作

查看状态

<BASH>

# 查看当前仓库状态
git status

添加文件到暂存区

<BASH>

# 添加单个文件
git add <file_name># 添加所有文件
git add .

提交更改

<BASH>

# 提交到本地仓库
git commit -m "Commit message"# 提交并跳过暂存区
git commit -a -m "Commit message"

查看提交历史

<BASH>

# 查看提交历史
git log# 查看简洁的提交历史
git log --oneline# 查看某个文件的修改历史
git log <file_name>

撤销更改

<BASH>

# 撤销工作区的更改
git checkout -- <file_name># 撤销暂存区的更改
git reset HEAD <file_name># 修改最后一次提交
git commit --amend

删除文件

<BASH>

# 从 Git 和文件系统中删除文件
git rm <file_name># 从 Git 中删除文件,但保留在文件系统中
git rm --cached <file_name>

5. 远程仓库操作

添加远程仓库

<BASH>

# 添加远程仓库
git remote add origin <repository_url>

查看远程仓库

<BASH>

# 查看远程仓库信息
git remote -v

推送更改到远程仓库

<BASH>

# 推送当前分支到远程仓库
git push origin <branch_name># 推送所有分支到远程仓库
git push --all origin

拉取远程仓库的更改

<BASH>

# 拉取远程仓库的更改并合并
git pull origin <branch_name># 拉取远程仓库的更改但不合并
git fetch origin

删除远程分支

<BASH>

# 删除远程分支
git push origin --delete <branch_name>

6. 分支操作

创建分支

<BASH>

# 创建新分支
git branch <branch_name># 创建并切换到新分支
git checkout -b <branch_name>

切换分支

<BASH>

# 切换到指定分支
git checkout <branch_name>

查看分支

<BASH>

# 查看所有分支
git branch# 查看远程分支
git branch -r# 查看所有分支(包括远程)
git branch -a

合并分支

<BASH>

# 将指定分支合并到当前分支
git merge <branch_name># 查看合并冲突
git status

删除分支

<BASH>

# 删除本地分支
git branch -d <branch_name># 强制删除本地分支
git branch -D <branch_name>

重命名分支

<BASH>

# 重命名当前分支
git branch -m <new_branch_name># 重命名其他分支
git branch -m <old_branch_name> <new_branch_name>

查看分支历史

<BASH>

# 查看分支的提交历史
git log --graph --oneline --all

结语

本文档涵盖了 Git 的常用命令,帮助你更高效地使用 Git 进行版本控制。如果需要更深入的学习,可以参考 Pro Git 书籍。


http://www.ppmy.cn/ops/166529.html

相关文章

Ollama+DeepSeek+NatCross内网穿透本地部署外网访问教程

目录 一、Ollama 简介 二、下载Ollama 三、下载并运行 DeepSeek 模型 四、运行 DeepSeek 模型 五、NatCross免费内网穿透 六、配置 ChatBox 连接 Ollama 七、外网使用ChatBox体验 一、Ollama 简介 Ollama 是一个开源的本地大模型部署工具&#xff0c;旨在让用户能够在个…

第五章-动态规划

第五章-动态规划 写在前面&#xff1a; 本笔记是根据acwing网站:算法基础课进行制作的&#xff0c;欢迎大家支持y总&#xff0c;听过y总的课&#xff0c;你绝对会对于算法产生更深的理解和更浓厚的兴趣&#xff01; 本笔记可能会有部分视频的截图&#xff0c;我不知道是不是会造…

CF 230B. T-primes

题目 time limit per test&#xff1a;2 seconds&#xff1b;memory limit per test&#xff1a;256 megabytes We know that prime numbers are positive integers that have exactly two distinct positive divisors. Similarly, well call a positive integer t Т-prime,…

自动驾驶与车路协同

自动驾驶与车路协同 核心进展 2024年自动驾驶技术聚焦“城市NOA”&#xff08;城市领航辅助驾驶&#xff09;和纯视觉方案。比亚迪“天神之眼”系统通过多传感器融合&#xff08;5R12V12U&#xff09;实现无图城市领航&#xff0c;测试中高速路段零接管1012。特斯拉的端到端模…

微服务分层架构技术解析:从 API 到数据访问的全方位探秘

微服务分层架构技术解析&#xff1a;从 API 到数据访问的全方位探秘 前言 在当今复杂多变的软件开发领域&#xff0c;微服务架构已成为构建大型分布式系统的核心范式。它通过将系统分解为一组小型、独立且高度内聚的服务&#xff0c;实现了模块化开发、独立部署与扩展&#x…

前端vue3 setup,后端fastapi

介绍 在 Web 开发中&#xff0c;视频播放是一个常见的需求。HLS&#xff08;HTTP Live Streaming&#xff09;和 FLV&#xff08;Flash Video&#xff09;是两种常见的视频流媒体传输协议。以下是它们的详细介绍和实现方法。 FLV&#xff08;Flash Video&#xff09; 简介 F…

基于 Docker 搭建 FRP 内网穿透开源项目

有些配置项不知道该不该用,不知道该在哪用,不知道怎么用,所以我自己写个文章简单记录一下做个笔记 本文介绍的是基于 Docker 运行 frps 和 frpc,并通过 TCP 协议简单穿透 SSH 和 HTTP,在观看本文之前请确保你的机器已经安装 Docker 服务端搭建 frps# 连接拥有公网 IP 的…

二叉树的基本操作与实现:C语言深度剖析

目录 代码整体框架 1. #define _CRT_SECURE_NO_WARNINGS 2. 头文件引入 3. typedef int BTtype; 4. 二叉树节点结构体定义 二叉树的创建 1. BuyNode 函数 2. CreatNode 函数 二叉树的遍历 前序遍历 中序遍历 后序遍历 二叉树属性的计算 节点个…