Git 常用命令指南

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


1. 全局参数配置

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

<BASH>

复制代码
# 设置用户名
git config --global user.name "Your Name"

# 设置邮箱
git config --global user.email "[email protected]"

# 查看所有配置
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 pullgit fetch 获取远程仓库的更改。
  • 常见的远程仓库托管平台包括 GitHub、GitLab 和 Bitbucket。

3.6 分支(Branch)

  • 分支是 Git 中用于并行开发的核心功能。
  • 默认情况下,Git 会创建一个 mastermain 分支。
  • 每个分支代表一个独立的开发线,可以在分支上进行修改而不影响其他分支。
  • 通过 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 书籍

相关推荐
kngines2 小时前
【实战ES】实战 Elasticsearch:快速上手与深度实践-8.2.2成本优化与冷热数据分离
大数据·数据库·elasticsearch·搜索引擎
kngines3 小时前
【实战ES】实战 Elasticsearch:快速上手与深度实践-8.2.1AWS OpenSearch无服务器方案
大数据·elasticsearch·搜索引擎·serverless
绛洞花主敏明3 小时前
git subtree在本地合并子仓库到主仓库
大数据·git·elasticsearch
火龙谷8 小时前
hadoop第3课(hdfs shell)
大数据·hadoop·hdfs
杜子腾dd10 小时前
16.使用读写包操作Excel文件:XlsxWriter 包
大数据·开发语言·python·excel·pandas
阿里云大数据AI技术11 小时前
演讲实录|分布式 Python 计算服务 MaxFrame 介绍及场景应用方案
大数据·云原生·云计算
MXsoft61812 小时前
监控易对各类服务器硬件的广泛支持和深入监控能力
大数据·数据库·信息可视化
浪剑超13 小时前
单机 elasticsearch下载,安装,配置,启动,百度云链接提供
elasticsearch
Elastic 中国社区官方博客14 小时前
拆解 “ES 已死“ 伪命题:Agentic RAG 时代搜索引擎的终极形态
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索