文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

七个改变我生活的 Git 小技巧

2024-12-03 03:15

关注

这些有用的小技巧将改变你在当前最流行的版本控制系统下的工作方式。

Git 是当前最流行最普遍的版本控制系统之一,它被应用于私有系统和公开网站上各种各样的开发工作。不论我变得对 Git 有多熟悉,似乎总有些功能等待着被发掘。下面分享下和 Git 相关的改变我工作方式的一些小技巧。

1、Git 中的自动纠错

我们每个人都不时在输入时犯拼写错误,但是如果你使能了 Git 的自动纠错功能,你就能让 Git 自动纠正一些输入错误的子命令。

假如你想用命令 git status 来检查状态,但是你恰巧错误地输入了 git stats。通常情况下,Git 会告诉你 ‘stats’ 不是个有效的命令:

  1. $ git stats
  2. git: stats is not a git command. See git --help’.
  3.  
  4. The most similar command is
  5. status

为了避免类似情形,只需要在你的 Git 配置中使能自动纠错功能。

  1. $ git config --global help.autocorrect 1

如果你只想对当前的仓库生效,就省略掉选项 --global

这个命令会使能自动纠错功能。在相应的 Git 官方文档 中可以看到这个命令的详细说明,但是试着敲一下上面的错误命令会使你对这个设置干了什么有个直观的了解:

  1. $ git stats
  2. git: stats is not a git command. See git --help’.
  3. On branch master
  4. Your branch is up to date with origin/master’.
  5.  
  6. nothing to commit, working tree clean

在上面的例子中,Git 直接运行了它建议命令的第一个,也就是 git status,而不是给你展示它所建议的子命令。

2、对提交进行计数

需要对提交进行计数的原因有很多。例如,一些开发人员利用提交计数来判断什么时候递增工程构建序号,也有一些开发人员用提交计数来对项目进展取得一个整体上的感观。

对提交进行计数相当简单而且直接,下面就是相应的 Git 命令:

  1. $ git rev-list --count branch-name

在上述命令中,参数 branch-name 必须是一个你当前仓库里的有效分支名。

  1. $ git rev-list count master
  2. 32
  3. $ git rev-list count dev
  4. 34

3、仓库优化

你的代码仓库不仅对你来说很宝贵,对你所在的组织也一样。通过少数几个惯例你就能使自己的仓库整洁并且保持最新。使用 .gitignore 文件 就是这些最好的惯例之一。通过使用这个文件你可以告诉 Git 不要保存一些不需要记录的文件,如二进制文件、临时文件等等。

当然,你还可以使用 Git 的垃圾回收来进一步优化你的仓库。

  1. $ git gc --prune=now --aggressive

这个命令在你和你的团队经常使用 pull 或者 push 操作的时候很有帮助。

它是一个内部工具,能清理掉你的仓库里没法访问或者说“空悬”的 Git 对象。

4、给未追踪的文件来个备份

大多数时候,删除所有未追踪的文件是安全的。但很多时候也有这么一种场景,你想删掉这些未追踪的文件同时也想做个备份防止以后需要用到。

Git 组合一些 Bash 命令和管道操作,可以让你可以很容易地给那些未追踪的文件创建 zip 压缩包。

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

上面的命令就生成了一个名字为 backup-untracked.zip 的压缩包文件(当然,在 .gitignore 里面忽略了的文件不会包含在内)。

5、了解你的 .git 文件夹

每个仓库都有一个 .git 文件夹,它是一个特殊的隐藏文件夹。

  1. $ ls -a
  2. . .git

Git 主要通过两个东西来工作:

  1. 当前工作树(你当前检出的文件状态)
  2. 你的 Git 仓库的文件夹(准确地说,包含版本信息的 .git 文件夹的位置)

这个文件夹存储了所有参考信息和一些其他的如配置、仓库数据、HEAD 状态、日志等更多诸如此类的重要细节。

一旦你删除了这个文件夹,尽管你的源码没被删,但是类似你的工程历史记录等远程信息就没有了。删除这个文件夹意味着你的工程(至少本地的复制)不再在版本控制的范畴之内了。这也就意味着你没法追踪你的修改;你没法从远程仓拉取或推送到远程仓了。

通常而言,你需要或者应当对你的 .git 文件夹的操作并不多。它是被 Git 管理的,而且大多数时候是一个禁区。然而,在这个文件夹内还是有一些有趣的工件,比如说当前的 HEAD 状态在内的就在其中。

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

它也隐含着对你仓库地描述:

  1. $ cat .git/description

这是一个未命名的仓库;通过编辑文件 ‘description’ 可以给这个仓库命名。

Git 钩子文件夹连同一些钩子文件例子也在这里。参考这些例子你就能知道 Git 钩子能干什么了。当然,你也可以 参考这个 Seth Kenlon 写的 Git 钩子介绍

6、浏览另一个分支的文件

有时,你会想要浏览另一个分支下某个文件的内容。这其实用一个简单的 Git 命令就可以实现,甚至都不用切换分支。

设想你有一个命名为 README.md 的文件,并且它在 main 分支上。当前你正工作在一个名为 dev 的分支。

用下面的 Git 命令,在终端上就行。

  1. $ git show main:README.md

一旦你执行这个命令,你就能在你的终端上看到 main 分支上该文件的内容。

7、Git 中的搜索

用一个简单的命令你就能在 Git 中像专业人士一样搜索了。更有甚者,尽管你不确定你的修改在哪次提交或者哪个分支上,你依然能搜索。

  1. $ git rev-list --all | xargs git grep -F ''

例如,假设你想在你的仓库中搜索字符串 “font-size: 52 px;" :

  1. $ git rev-list all | xargs git grep -F font-size: 52 px;’
  2. F30229e12:HtmlTemplate/style.css: font-size: 52 px;
  3. E92118244:RR.Web/Content/style/style.css: font-size: 52 px;

试试这些小技巧

我希望这些小技巧对你是有用的,或者增加你的生产力或者节省你的大量时间。 

来源:Linux中国内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯