Git 常用指令大全

前言

Git 是一个开源的分布式版本控制系统,常用于代码版本管理和团队协作开发。本文将介绍一些日常开发中最常用的 Git 指令,帮助你快速上手和查阅。

一、Git 基本配置

1
2
3
4
5
6
7
8
# 设置用户名
git config --global user.name "你的用户名"

# 设置邮箱
git config --global user.email "你的邮箱@example.com"

# 查看当前配置
git config --list

二、项目初始化与克隆

1
2
3
4
5
6
7
8
# 初始化一个本地仓库
git init

# 克隆远程仓库
git clone https://github.com/用户名/项目名.git

# 克隆并指定目录名
git clone https://github.com/用户名/项目名.git myproject

三、常用工作流命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# 查看当前仓库状态
git status

# 添加文件到暂存区(stage)
git add 文件名 # 添加单个文件
git add . # 添加当前目录下所有更改

# 提交代码到本地仓库
git commit -m "提交说明"

# 添加并提交(快捷命令)
git commit -am "提交说明"

# 查看提交历史
git log

# 简洁日志查看
git log --oneline

# 显示最近一次提交的改动内容
git show

# 撤销修改(回退未提交的修改)
git checkout -- 文件名

# 重置暂存区文件(从暂存区移除)
git reset HEAD 文件名

四、分支操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 查看分支列表
git branch

# 创建新分支
git branch 分支名

# 切换分支
git checkout 分支名

# 创建并切换新分支
git checkout -b 分支名

# 删除分支
git branch -d 分支名

# 合并分支到当前分支
git merge 分支名

# 解决冲突后添加并提交
git add 冲突文件
git commit -m "解决冲突"

五、远程操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 查看远程仓库
git remote -v

# 添加远程仓库
git remote add origin 仓库地址

# 推送到远程仓库(首次)
git push -u origin master

# 推送当前分支
git push

# 拉取远程仓库最新代码
git pull

# 获取远程分支信息但不合并
git fetch

六、标签操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 创建标签
git tag v1.0

# 带注释的标签
git tag -a v1.0 -m "版本说明"

# 查看标签
git tag

# 推送标签到远程
git push origin v1.0

# 删除本地标签
git tag -d v1.0

# 删除远程标签
git push origin :refs/tags/v1.0

七、撤销与恢复操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 回退到上一个提交(保留改动)
git reset --soft HEAD~1

# 回退到上一个提交(删除改动)
git reset --hard HEAD~1

# 丢弃工作区和暂存区的所有改动
git reset --hard

# 查看某次提交的修改内容
git diff 提交ID

# 撤销 commit(如需修改提交信息)
git commit --amend

八、忽略文件配置(.gitignore)

创建 .gitignore 文件以指定 Git 忽略哪些文件:

1
2
3
4
5
6
7
8
# 忽略 node_modules 目录
node_modules/

# 忽略所有 .log 文件
*.log

# 忽略本地配置文件
.env.local

九、常见问题解决

1
2
3
4
5
# fatal: refusing to merge unrelated histories
git pull origin master --allow-unrelated-histories

# 修改上一次提交信息
git commit --amend -m "新的提交信息"

⚠️ 免责声明:本文仅供个人学习与技术研究使用。