当使用 Git 存储库时,这六个 Bash 脚本将使你的生活更轻松。
-- Bob Peterson
我编写了许多 Bash 脚本,这些脚本使我在使用 Git 存储库时工作更加轻松。我的许多同事说没有必要:我所做的一切都可以用 Git 命令完成。虽然这可能是正确的,但我发现脚本远比尝试找出适当的 Git 命令来执行我想要的操作更加方便。
1、gitlog
打印针对 master 分支的当前补丁的简短列表。它从最旧到最新打印它们,并显示作者和描述,其中 代表 , 代表 , 代表 ,依此类推。例如:
如果我想查看其他分支上有哪些补丁,可以指定一个替代分支:
2、gitlog.id
只是打印出补丁的 SHA1 ID:
同样,它假定是当前分支,但是如果需要,我可以指定其他分支。
3、gitlog.id2
与 相同,但顶部没有显示分支的行。这对于从一个分支挑选所有补丁到当前分支很方便:
4、gitlog.grep
会在该补丁集合中寻找一个字符串。例如,如果我发现一个错误并想修复引用了函数 的补丁,我可以简单地执行以下操作:
因此,现在我知道补丁 是需要修复的补丁。我使用 编辑补丁 9,,然后 以进行必要的调整。
5、gitbranchcmp3
使我可以将当前分支与另一个分支进行比较,因此我可以将较旧版本的补丁与我的较新版本进行比较,并快速查看已更改和未更改的内容。它生成一个比较脚本(使用了 KDE 工具Kompare,该工具也可在 GNOME3 上使用)以比较不太相同的补丁。如果除行号外没有其他差异,则打印 。如果仅存在注释差异,则打印 (小写)。例如:
6、gitlog.find
最后,我有一个 脚本,可以帮助我识别补丁程序的上游版本在哪里以及每个补丁的当前状态。它通过匹配补丁说明来实现。它还会生成一个比较脚本(再次使用了 Kompare),以将当前补丁与上游对应补丁进行比较:
补丁显示为两行,第一行是你当前的修补程序,然后是相应的上游补丁,以及 2 个字符的缩写,以指示其上游状态:
◈ 表示补丁仅在本地()上游 Git 存储库中(即尚未推送到上游)。
◈ 表示补丁位于 Linus Torvald 的主()分支中。
◈ 意味着补丁被推送到我的 “for-next” 开发分支,用于下一个上游合并窗口。 我的一些脚本根据我通常使用 Git 的方式做出假设。例如,当搜索上游补丁时,它使用我众所周知的 Git 树的位置。因此,你需要调整或改进它们以适合你的条件。 脚本旨在仅定位GFS2和DLM补丁,因此,除非你是 GFS2 开发人员,否则你需要针对你感兴趣的组件对其进行自定义。
源代码
以下是这些脚本的源代码。
1、gitlog
2、gitlog.id
3、gitlog.id2
4、gitlog.grep
5、gitbranchcmp3
6、gitlog.find
via:https://opensource.com/article/20/1/bash-scripts-git
作者:Bob Peterson选题:lujun9972译者:wxy校对:wxy
本文由LCTT原创编译,Linux中国荣誉推出
:看到这里点一下在看呗?
领取专属 10元无门槛券
私享最新 技术干货