改变我人生的 7 个 Git 技巧

2025-05-28

改变我人生的 7 个 Git 技巧

替代文本

这些有用的提示将改变您使用流行版本控制系统的方式。

Git 是最常用的版本控制系统之一,它被广泛应用于私人系统和公共托管网站的各种开发工作。无论我多么精通 Git,似乎总有一些功能有待探索。以下七个技巧改变了我使用 Git 的方式。

1. Git 中的自动更正

我们有时都会输入错误,但如果你启用了 Git 的自动更正功能,你就可以让 Git 自动修复输入错误的子命令。
假设你想用 git status 检查状态,但却不小心输入了 git stats。正常情况下,Git 会告诉你“stats”不是一个有效的命令:
$ git stats
git: ‘stats’ is not a git command. See ‘git --help’.
The most similar command is status

为了避免类似情况,请在 Git 配置中启用 Git 自动更正功能:
$ git config --global help.autocorrect 1
如果您希望此功能仅适用于当前存储库,请省略 --global 选项。
此命令将启用自动更正功能。GitDocs 上提供了详细的教程,但尝试执行与上述相同的错误命令可以让您更好地了解此配置的作用: Git 现在不会建议其他子命令,而是直接运行最上面的建议,在本例中是 git status。
$ git stats
git: ‘stats’ is not a git command. See ‘git --help’.
On branch master
Your branch is up to date with ‘origin/master’. nothing to commit, working tree clean

2. 统计你的提交次数

您可能需要统计提交次数的原因有很多。许多开发人员统计提交次数是为了判断何时增加构建号,或者只是为了了解项目的进展情况。
统计提交次数非常简单直接;以下是 Git 命令:
$ git rev-list --count
在上述命令中,分支名称应该是当前存储库中的有效分支名称。
$ git rev-list –count master
32
$ git rev-list –count dev
34

3. 优化你的仓库

您的代码仓库不仅对您自己,对您的组织也同样重要。您可以通过一些简单的实践来保持仓库的整洁和最新状态。最佳实践之一是使用 .gitignore 文件。使用此文件,您可以告诉 Git 不要存储许多不需要的文件,例如二进制文件、临时文件等等。
为了进一步优化您的仓库,您可以使用 Git 垃圾回收。
$ git gc --prune=now --aggressive
当您或您的团队频繁使用拉取或推送命令时,此命令会很有帮助。
此命令是一个内部实用程序,用于清理仓库中无法访问或“孤立”的 Git 对象。

4. 备份未跟踪的文件

大多数情况下,删除所有未跟踪文件是安全的。但很多时候,你会想要删除这些文件,但同时也想为它们创建一个备份,以备不时之需。Git
结合一些 Bash 命令管道,可以轻松地为未跟踪文件创建一个 zip 压缩包。 上述命令会创建一个名为“backup-untracked.zip”的压缩包(并排除 .gitignore 中列出的文件)。
$ git ls-files --others --exclude-standard -z |\
xargs -0 tar rvf ~/backup-untracked.zip

5. 了解你的 .git 文件夹

每个仓库都有一个 .git 文件夹。它是一个特殊的隐藏文件夹。Git 主要处理两件事: 工作树(当前检出的文件状态); Git 仓库的路径(具体来说,是 .git 文件夹的位置,其中包含版本信息); 此文件夹存储所有引用和其他重要详细信息,例如配置、仓库数据、HEAD 状态、日志等等。 如果删除此文件夹,源代码的当前状态不会被删除,但远程信息(例如项目历史记录)会被删除。删除此文件夹意味着您的项目(至少是本地副本)不再受版本控制。这意味着您无法跟踪更改;您无法从远程拉取或推送。 通常,在 .git 文件夹中,您不需要做太多事情,也不应该做太多事情。它由 Git 管理,并且通常被认为是禁止访问的。但是,此目录中有一些有趣的内容,包括 HEAD 的当前状态: 它还可能包含仓库的描述:
$ ls -a
. … .git







$ cat .git/HEAD
ref: refs/heads/master


$ cat .git/description
This is an unnamed repository; edit this file ‘description’ to name the repository.

6.查看另一个分支的文件

有时您想查看另一个分支的文件内容。只需一个简单的 Git 命令即可实现,无需实际切换分支。
假设您有一个名为 README.md 的文件,它位于主分支中。您正在一个名为 dev 的分支上工作。
使用以下 Git 命令,您可以从终端执行此操作。
$ git show main:README.md
执行此命令后,您可以在终端中查看文件的内容。

7. 在 Git 中搜索

只需一个简单的命令,你就能像专业人士一样在 Git 中搜索。更棒的是,即使你不确定自己在哪个提交(甚至是分支)中进行了更改,也可以在 Git 中搜索。
$ git rev-list --all | xargs git grep -F ‘’
例如,假设你想在仓库中搜索字符串“font-size: 52 px;”:
$ git rev-list –all | xargs git grep -F ‘font-size: 52 px;’
F3022…9e12:HtmlTemplate/style.css: font-size: 52 px;
E9211…8244:RR.Web/Content/style/style.css: font-size: 52 px;

文章来源:https://dev.to/vivekagent47/7-git-tricks-that-c​​hanged-my-life-3aj3
PREV
使用 Go 构建简单的负载均衡器
NEXT
Padronização de commit com(Commitlint、Husky e Commitizen)