Git 常用命令

Git 常用命令

Git 是一个分布式版本控制以及源代码管理工具,它可以为你的项目保存若干快照,以此来对整个项目进行版本管理。

init

初始化一个新的 Git 版本库,这个版本库的配置、存储等信息会被保存到当前目录的.git 文件夹中。

1
git init .

config

修改 Git 配置,可以是版本库的配置,也可以是系统或全局配置。

1
2
3
4
5
6
# 输出、设置基本的全局变量
git config --global user.email
git config --global user.name

git config --global user.email "test@gmail.com"
git config --global user.name "Test"

更多设置

help

Git 帮助文档,可以供我们快速查阅。

1
2
3
4
5
6
7
8
9
10
11
# 查找可用命令
git help

# 查找所有可用命令
git help -a

# 在文档当中查找特定的命令
# git help <命令>
git help add
git help commit
git help init

status

显示当前工作空间的状态信息。

1
2
3
4
5
# 显示分支,未跟踪文件,更改和其他不同
git status

# 查看其他 git status 的用法
git help status

add

添加文件到当前工作空间。

1
2
3
4
5
6
7
8
# 添加一个文件
git add test.c

# 添加一个子目录中的文件
git add /path/to/file/test1.c

# 支持正则表达式
git add ./*.py

branch

管理分支,可以通过命令对分支进行增删改查。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 查看所有的分支和远程分支
git branch -a

# 创建一个新的分支
git branch myNewBranch

# 删除一个分支
git branch -d myBranch

# 重命名分支
# git branch -m <旧名称> <新名称>
git branch -m myBranchName myNewBranchName

# 编辑分支的介绍
git branch myBranchName --edit-description

checkout

1
2
3
4
5
6
# 检出一个版本库,默认将更新到 master 分支
git checkout
# 检出到一个特定的分支
git checkout branchName
# 新建一个分支,并且切换过去,相当于"git branch <名字>; git checkout <名字>"
git checkout -b newBranch

clone

1
2
# 克隆仓库
git clone https://github.com/liuyuhe666/liuyuhe666.git

commit

1
2
# 提交时附带提交信息
git commit -m "feat: add login"

diff

显示当前工作区和提交的不同。

1
2
3
4
5
6
7
8
# 显示工作目录和索引的不同
git diff

# 显示索引和最近一次提交的不同
git diff --cached

# 显示工作目录和最近一次提交的不同
git diff HEAD

grep

在版本库中进行快速查找。

1
2
3
4
5
# 在搜索结果中显示行号
git config --global grep.lineNumber true

# 使得搜索结果可读性更好
git config --global alias.g "grep --break --heading --line-number"
1
2
# 在所有的 java 文件中查找 variableName
git grep 'variableName' -- '*.java'

log

显示版本库的提交日志。

1
2
3
4
5
6
7
8
# 显示所有提交
git log

# 显示某几条提交信息
git log -n 10

# 仅显示合并提交
git log --merges

merge

合并分支。

1
2
3
4
5
# 将其他分支合并到当前分支
git merge branchName

# 在合并时创建一个新的合并后的提交
git merge --no-ff branchName

mv

重命名或移动一个文件。

1
2
3
4
5
6
7
8
9
# 重命名
git mv HelloWorld.c HelloNewWorld.c

# 移动
git mv HelloWorld.c ./new/path/HelloWorld.c

# 强制重命名或移动
# 这个文件已经存在,将要覆盖掉
git mv -f myFile existingFile

pull

从远程库中拉取代码。

1
2
3
# 从远端 origin 的 main 分支更新版本库
# git pull <远端> <分支>
git pull origin main

push

1
2
3
4
# 把本地的分支更新到远端 origin 的 main 分支上
# git push <远端> <分支>
# git push 相当于 git push origin main
git push origin main

rebase

1
2
3
# 将 newBranch 应用到 main 上面
# git rebase <basebranch> <topicbranch>
git rebase main newBranch

详细介绍

reset

1
2
3
4
5
6
7
8
9
10
11
12
13
# 使暂存区域恢复到上次提交时的状态,不改变现在的工作目录
git reset

# 使暂存区域恢复到上次提交时的状态,覆盖现在的工作目录
git reset --hard

# 将当前分支恢复到某次提交,不改变现在的工作目录
# 在工作目录中所有的改变仍然存在
git reset 31f2bb1

# 将当前分支恢复到某次提交,覆盖现在的工作目录
# 并且删除所有未提交的改变和指定提交之后的所有提交
git reset --hard 31f2bb1

rm

1
2
3
4
5
# 移除 HelloWorld.c
git rm HelloWorld.c

# 移除子目录中的文件
git rm /pather/to/the/file/HelloWorld.c

参考资料


Git 常用命令
https://liuyuhe666.github.io/2025/04/14/Git-常用命令/
作者
Liu Yuhe
发布于
2025年4月14日
许可协议