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 书籍

相关推荐
绿算技术3 分钟前
“强强联手,智启未来”凯创未来与绿算技术共筑高端智能家居及智能照明领域新生态
大数据·人工智能·智能家居
只因只因爆1 小时前
spark的缓存
大数据·缓存·spark
Leo.yuan2 小时前
3D 数据可视化系统是什么?具体应用在哪方面?
大数据·数据库·3d·信息可视化·数据分析
只因只因爆3 小时前
spark小任务
大数据·分布式·spark
cainiao0806053 小时前
Java 大视界——Java 大数据在智慧交通智能停车诱导系统中的数据融合与实时更新
java·大数据·开发语言
End9285 小时前
Spark之搭建Yarn模式
大数据·分布式·spark
我爱写代码?5 小时前
Spark 集群配置、启动与监控指南
大数据·开发语言·jvm·spark·mapreduce
TDengine (老段)6 小时前
什么是物联网 IoT 平台?
大数据·数据库·物联网·时序数据库·tdengine·涛思数据
青云交6 小时前
Java 大视界 -- 基于 Java 的大数据分布式存储在工业互联网海量设备数据长期存储中的应用优化(248)
java·大数据·工业互联网·分布式存储·冷热数据管理·hbase 优化·kudu 应用
会飞的架狗师6 小时前
【SpringBoot实战指南】集成Easy ES
spring boot·elasticsearch