【Git】Git 命令参考手册

简介: Git 命令参考手册的扩展部分,包含了从基础操作到高级功能的全面讲解。

Git 命令参考手册

1. 创建仓库

1.1 创建一个新的本地仓库

```shell script
$ git init [项目名]


### 1.2 克隆一个仓库

```shell script
$ git clone git_url

1.3 克隆仓库到指定目录

```shell script
$ git clone git_url my_directory


## 2. 提交更改

### 2.1 显示工作目录中已修改的文件,准备提交

```shell script
$ git status

2.2 将文件添加到暂存区,准备提交

```shell script
$ git add [文件名]


### 2.3 将所有已修改的文件添加到暂存区,准备提交

```shell script
$ git add .

2.4 提交暂存区的所有文件到版本历史

```shell script
$ git commit -m "提交信息"


### 2.5 提交所有已跟踪的文件到版本历史

```shell script
$ git commit -am "提交信息"

2.6 放弃在工作目录中但未暂存的更改

```shell script
$ git restore [文件名]


### 2.7 取消暂存已暂存的文件

```shell script
$ git restore --staged [文件名]

2.8 取消暂存文件并保留更改

```shell script
$ git reset [文件名]


### 2.9 恢复到上次提交的状态

```shell script
$ git reset --hard

2.10 查看未暂存的更改

```shell script
$ git diff


### 2.11 查看已暂存但未提交的更改

```shell script
$ git diff --staged

2.12 将当前分支的提交应用到指定的分支

```shell script
$ git rebase [分支]


## 3. 配置
### 3.1 设置用户名

```shell script
$ git config --global user.name "用户名"

3.2 设置邮箱

```shell script
$ git config --global user.email "邮箱"


### 3.3 启用 Git 输出的颜色


```shell script
$ git config --global color.ui auto

3.4 编辑全局配置文件

```shell script
$ git config --global --edit


## 4. 工作分支

### 4.1 列出本地分支

```shell script
$ git branch

4.2 列出所有分支(包括远程)

```shell script
$ git branch -av


### 4.3 切换到某个分支

```shell script
$ git checkout my_branch

4.4 创建并切换到一个新分支

```shell script
$ git checkout -b new_branch


### 4.5 删除分支

```shell script
$ git branch -d my_branch

4.6 合并分支

4.6.1 将 branchA 合并到 branchB

```shell script
$ git checkout branchB
$ git merge branchA


### 4.7 为当前提交打标签

```shell script
$ git tag my_tag

5. 查看仓库状态

5.1 查看提交历史

```shell script
$ git log


### 5.2 查看分支A上有而分支B上没有的提交

```shell script
$ git log branchB..branchA

5.3 查看文件的提交历史(包括重命名)

```shell script
$ git log --follow [文件名]


### 5.4 查看两个分支的差异

```shell script
$ git diff branchB...branchA

5.5 查看 Git 对象的详细信息

```shell script
$ git show [SHA]


## 6. 同步

### 6.1 从远程拉取所有分支

```shell script
$ git fetch [别名]

6.2 合并远程分支到当前分支

```shell script
$ git merge [别名]/[分支]

不使用快进

$ git merge --no-ff [别名]/[分支]

仅使用快进

$ git merge --ff-only [别名]/[分支]


### 6.3 推送本地分支到远程仓库

```shell script
$ git push [别名] [分支]

6.4 拉取并合并远程仓库的最新提交

```shell script
$ git pull


### 6.5 从另一个分支合并指定的提交

```shell script
$ git cherry-pick [提交ID]

7. 远程操作

7.1 添加远程仓库

```shell script
$ git remote add [别名] [远程仓库URL]


### 7.2 查看所有已配置的远程仓库

```shell script
$ git remote

7.3 查看远程仓库的 URL

```shell script
$ git remote -v


### 7.4 删除远程仓库

```shell script
$ git remote rm [远程仓库名]

7.5 修改远程仓库的 URL

```shell script
$ git remote set-url origin [git_url]


## 8. 临时提交

### 8.1 保存已修改且已暂存的更改

```shell script
$ git stash

8.2 查看存储的更改列表

```shell script
$ git stash list


### 8.3 恢复最新的暂存更改

```shell script
$ git stash pop

8.4 删除最新的暂存更改

```shell script
$ git stash drop


## 9. 跟踪文件路径变动

### 9.1 删除项目中的文件并准备提交删除

```shell script
$ git rm [文件名]

9.2 更改文件路径并准备提交变动

```shell script
$ git mv [原路径] [新路径]


### 9.3 显示包含路径变动的提交日志

```shell script
$ git log --stat -M

10. 忽略文件

.gitignore 文件中,指定不需要 Git 跟踪的文件

```shell script
/logs/*

"!" 表示不忽略

!logs/.gitkeep

忽略 Mac 系统文件

.DS_store

忽略 node_modules 文件夹

node_modules

忽略 SASS 配置文件

.sass-cache


## 11. 重命名分支

#### 11.1 重命名当前分支

```shell script
$ git branch -m <新名称>

11.2 推送并重设远程分支

```shell script
$ git push origin -u <新名称>


#### 11.3 删除远程分支

```shell script
$ git push origin --delete <旧名称>

12. 查找变动

12.1 按内容搜索变动

```shell script
$ git log -S'<源代码中的某个术语>'


### 12.2 查看某个文件的变动历史

```shell script
$ git log -p <文件名>

12.3 使用可视化图形查看提交历史

```shell script
$ git log --pretty=oneline --graph --decorate --all


## 13. 分支管理

### 13.1 查看所有分支及其上游分支

```shell script
$ git branch -vv

13.2 快速切换到上一个分支

```shell script
$ git checkout -


### 13.3 只查看远程分支

```shell script
$ git branch -r

13.4 从其他分支检出单个文件

```shell script
$ git checkout <分支> -- <文件名>


## 14. 重写历史

### 14.1 重写最后一次提交的提交信息

```shell script
$ git commit --amend -m "提交信息"

14.2 修改最新的提交,保持提交信息不变

```shell script
$ git commit --amend --no-edit


### 14.3 修改提交信息并更新时间戳

```shell script
$ git commit --amend --no-edit --date="now"

14.4 重写多个提交的历史(交互式 rebase)

```shell script
$ git rebase -i HEAD~N # N是要修改的提交数量


### 14.5 交互式 rebase 合并提交

在交互式 rebase 的编辑界面,使用 `squash` 或 `fixup` 合并提交。

```shell script
pick e3a1b35 提交1
squash f98f27e 提交2

14.6 强制推送更改到远程仓库

```shell script
$ git push --force


## 15. 检查 Git 配置

```shell script
$ git config --list

16. 删除未跟踪的文件和目录

```shell script
$ git clean -fd


## 17. 创建一个新的空的 Git 仓库

```shell script
$ git init --bare

18. 显示文件内容的 Git 哈希值

```shell script
$ git hash-object [文件名]


## 19. 使用简洁输出查看提交日志

```shell script
$ git log --oneline

20. 与 GitHub 配合使用

20.1 添加 SSH 密钥到 GitHub

首先生成 SSH 密钥:

```shell script
$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"


然后将公钥添加到 GitHub 的 SSH 设置中。

### 20.2 使用 SSH 协议克隆仓库

```shell script
$ git clone git@github.com:username/repository.git

20.3 使用 HTTPS 协议克隆仓库

```shell script
$ git clone https://github.com/username/repository.git


### 20.4 推送到 GitHub

```shell script
$ git push origin main

21. 解决冲突

21.1 查看冲突文件

```shell script
$ git status


### 21.2 编辑冲突文件并手动解决冲突

冲突标记如下:

```shell script
<<<<<<< HEAD
代码块A
=======
代码块B
>>>>>>> branch-name

手动编辑并解决冲突后,使用 git add 将文件添加到暂存区。

21.3 完成合并并提交

```shell script
$ git commit


### 21.4 放弃合并并返回到合并之前的状态

```shell script
$ git merge --abort

22. Git 的别名功能

22.1 创建常用命令的别名

```shell script
$ git config --global alias.st status
$ git config --global alias.ci commit
$ git config --global alias.co checkout


这样,你就可以使用 `git st` 来代替 `git status`,`git ci` 来代替 `git commit`,以此类推。

### 22.2 查看所有已设置的 Git 别名

```shell script
$ git config --get-regexp ^alias

22.3 删除 Git 别名

```shell script
$ git config --global --unset alias.st


## 23. 使用 Git hooks

### 23.1 查看和配置 Git hooks

Git 支持多种钩子(hook),如在提交前检查代码或在推送之前进行某些操作。这些钩子位于 `.git/hooks` 目录中。你可以编辑这些文件来定制 Git 的行为。

```shell script
$ cd .git/hooks
$ ls

23.2 启用钩子

例如,启用一个 pre-commit 钩子,可以创建一个 pre-commit 文件并加上脚本内容。Git 会在每次提交前运行该脚本。

24. 多人协作中的最佳实践

24.1 经常拉取远程仓库的更改

```shell script
$ git pull origin main


### 24.2 使用分支进行功能开发

在开始新功能时,应该为每个新功能创建一个新的分支:

```shell script
$ git checkout -b feature/new-feature

24.3 合并分支时使用 --no-ff 防止丢失历史

使用 --no-ff 选项来强制 Git 创建一个新的合并提交,保留分支合并的历史。

```shell script
$ git merge --no-ff feature/new-feature


### 24.4 在开发过程中定期提交

确保在开发过程中,适时地提交更改。每个提交应该是功能完整的,并且具有清晰的提交信息。

### 24.5 在合并时解决冲突

如果多个开发者修改了相同的代码段,合并时可能会出现冲突。此时需要手动解决冲突,确保代码正确性。

## 25. Git Submodule

### 25.1 添加子模块

```shell script
$ git submodule add [repository_url] [路径]

25.2 初始化和更新子模块

```shell script
$ git submodule update --init


### 25.3 更新子模块

```shell script
$ git submodule update --remote

25.4 删除子模块

```shell script
$ git submodule deinit [路径]
$ git rm [路径]
$ rm -rf .gitmodules


## 26. Git LFS(大文件存储)

### 26.1 安装 Git LFS

```shell script
$ git lfs install

26.2 跟踪大文件类型

```shell script
$ git lfs track "*.psd"


### 26.3 提交大文件

```shell script
$ git add .gitattributes
$ git add <大文件>
$ git commit -m "Add large file"

27. Git 性能优化

27.1 清理仓库历史

```shell script
$ git gc --aggressive


### 27.2 删除不需要的分支

删除本地和远程不再使用的分支,以保持仓库的整洁和性能。

#### 27.2.1 删除本地分支

```shell script
$ git branch -d <分支名>

27.2.2 删除远程分支

shell script $ git push origin --delete <分支名>

以上为 Git 命令参考手册的扩展部分,包含了从基础操作到高级功能的全面讲解。您可以根据需要查阅和使用相应的命令和技巧。

28. 结束语

  1. 本节内容已经全部介绍完毕,希望通过这篇文章,大家对 Git 有了更深入的理解和认识。
  2. 感谢各位的阅读和支持,如果觉得这篇文章对你有帮助,请不要吝惜你的点赞和评论,这对我们非常重要。再次感谢大家的关注和支持![点我关注❤️]
目录
相关文章
|
29天前
|
开发工具 git
git 常用命令
这些只是 Git 命令的一部分,Git 还有许多其他命令和选项,可根据具体需求进行深入学习和使用。熟练掌握这些命令能够帮助你更高效地管理代码版本和协作开发。
|
1月前
|
缓存 Java Shell
[Git]入门及其常用命令
本文介绍了 Git 的基本概念和常用命令,包括配置、分支管理、日志查看、版本回退等。特别讲解了如何部分拉取代码、暂存代码、删除日志等特殊需求的操作。通过实例和图解,帮助读者更好地理解和使用 Git。文章强调了 Git 的细节和注意事项,适合初学者和有一定基础的开发者参考。
53 1
[Git]入门及其常用命令
|
1月前
|
开发工具 git 开发者
|
1月前
|
开发工具 git 开发者
提升Git效率:掌握这5个高级命令
【10月更文挑战第17天】
65 0
|
2月前
|
开发工具 git
【Git快速入门】Git代码管理手册与协同开发之分支管理与协作(五)
【Git快速入门】Git代码管理手册与协同开发之分支管理与协作(五)
|
2月前
|
网络协议 网络安全 开发工具
【Git快速入门】Git代码管理手册与协同开发之远程仓库(四)
【Git快速入门】Git代码管理手册与协同开发之远程仓库(四)
|
2月前
|
开发工具 git
【Git快速入门】Git代码管理手册与协同开发之基本操作(三)
【Git快速入门】Git代码管理手册与协同开发之基本操作(三)
|
开发工具 git
Git查询手册
Git查询手册
186 0
|
4月前
|
存储 开发工具 git
|
4月前
|
开发工具 git
【GIT 第二篇章】GIT常用命令
Git常用命令涵盖初始化、状态管理、提交、分支处理、远程操作等关键流程。`git init`启动本地仓库,`git clone`下载远程仓库。通过`git status`和`git diff`检查工作状态与差异。利用`git add`暂存文件,`git commit`保存更改。借助`git branch`、`git checkout`、`git merge`和`git rebase`管理分支。使用`git fetch`、`git pull`和`git push`同步远程仓库。通过`git reset`、`git revert`和`git checkout`实现版本回退。
76 0