7 个改变我人生的 Git 技巧

这些有用的技巧将改变你使用流行版本控制系统的方式。
198 位读者喜欢此文。
Computer screen with files or windows open

Opensource.com

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 选项。

此命令启用自动纠正功能。 在Git 文档中有一个深入的教程,但尝试与上述相同的错误命令可以让你很好地了解此配置的作用

$ 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

Git 现在不会建议一个替代子命令,而是直接运行排名最高的建议,在本例中是 git status

2. 统计你的提交

你可能需要统计你的提交的原因有很多。 许多开发人员统计提交的数量,以判断何时增加构建版本号,或者只是为了了解项目的进展情况。

统计你的提交非常容易和直接; 这里是 Git 命令

$ git rev-list --count

在上面的命令中,branch-name 应该是你当前存储库中的有效分支名称。

$ git rev-list –count master
32
$ git rev-list –count dev
34

3. 优化你的仓库

你的代码存储库不仅对你,而且对你的组织都很有价值。 你可以通过一些简单的做法来保持存储库的清洁和最新。 最好的做法之一是使用 .gitignore 文件。 通过使用此文件,你告诉 Git 不要存储许多不需要的文件,例如二进制文件,临时文件等等。

要进一步优化你的存储库,你可以使用 Git 垃圾回收。

$ git gc --prune=now --aggressive

当你或你的团队大量使用 pullpush 命令时,此命令会很有帮助。

此命令是一个内部实用程序,用于清除存储库中无法访问或“孤立”的 Git 对象。

4. 备份未跟踪的文件

在大多数情况下,删除所有未跟踪的文件是安全的。 但是很多时候,在某些情况下,你想要删除,但也要创建未跟踪文件的备份,以备将来需要时使用。

Git,以及一些 Bash 命令管道,可以轻松地为你的未跟踪文件创建一个 zip 存档。

$ git ls-files --others --exclude-standard -z |\
xargs -0 tar rvf ~/backup-untracked.zip

上面的命令创建一个名为 backup-untracked.zip 的存档(并排除 .gitignore 中列出的文件)

5. 了解你的 .git 文件夹

每个存储库都有一个 .git 文件夹。 这是一个特殊的隐藏文件夹。

$ ls -a
. … .git

Git 主要与两件事一起工作

  1. 工作树(当前检出中文件的状态)
  2. 你的 Git 存储库的路径(特别是 .git 文件夹的位置,其中包含版本控制信息)

此文件夹存储所有引用和其他重要细节,例如配置,存储库数据,HEAD 的状态,日志等等。

如果删除此文件夹,则不会删除源代码的当前状态,但会删除你的远程信息,例如你的项目历史记录。 删除此文件夹意味着你的项目(至少是本地副本)不再受版本控制。 这意味着你无法跟踪你的更改;你无法从远程拉取或推送。

通常,你不需要在你的 .git 文件夹中做太多事情,或者应该做太多事情。 它由 Git 管理,并且被认为是几乎禁止访问的。 但是,此目录中存在一些有趣的工件,包括 HEAD 的当前状态

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

它还可能包含存储库的描述

$ cat .git/description

这是一个未命名的存储库;编辑此文件“description”来命名存储库。

Git 钩子文件夹也在这里,附带示例钩子文件。 你可以阅读这些示例,以了解通过 Git 钩子可以实现的功能,你也可以阅读 Seth Kenlon 的 Git 钩子介绍

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

有时你想要查看来自另一个分支的文件的内容。 使用一个简单的 Git 命令即可实现,而无需实际切换你的分支。

假设你有一个名为 README.md 的文件,它在 main 分支中。 你正在处理一个名为 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;

尝试这些技巧

我希望这些高级技巧对你有所帮助,并提高你的工作效率,为你节省大量时间。

你是否有你喜欢的 Git 技巧? 在评论中分享它们。

接下来阅读什么
标签
User profile image.
我是一个对技术充满热情的人。 每当我得到机会时,我都喜欢为各种项目做出贡献。 你可以在我的网站 aCompiler 上找到我

评论已关闭。

Creative Commons License本作品采用 Creative Commons Attribution-Share Alike 4.0 International License 许可。
© . All rights reserved.