首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么git-过滤器分支不链接?

为什么git-过滤器分支不链接?
EN

Stack Overflow用户
提问于 2021-02-16 08:05:23
回答 1查看 19关注 0票数 0

我在macOS 11.2.1上安装了git,git版本为2.30.1,我在/usr/local/Cellar/git/2.30.1/libexec/git-core中运行了ls -lih,并得到了这个结果

代码语言:javascript
复制
8081498 lrwxr-xr-x   1 devaccount  staff    13B Feb  9 07:20 git-fetch -> ../../bin/git
18081680 lrwxr-xr-x   1 devaccount  staff    13B Feb  9 07:20 git-fetch-pack -> ../../bin/git
18081665 -rwxr-xr-x   1 devaccount  staff    16K Feb  9 07:20 git-filter-branch
18081605 lrwxr-xr-x   1 devaccount  staff    13B Feb  9 07:20 git-fmt-merge-msg -> ../../bin/git
18081575 lrwxr-xr-x   1 devaccount  staff    13B Feb  9 07:20 git-for-each-ref -> ../../bin/git
18081641 lrwxr-xr-x   1 devaccount  staff    13B Feb  9 07:20 git-for-each-repo -> ../../bin/git

为什么git-过滤器分支不链接?谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-16 09:03:10

filter分支命令被实现为一个shell脚本(然后运行大量的Git管道命令,再加上一些东西,比如sed,当然还有您指定的任何过滤器,以完成它的工作)。因此,“二进制”-a微型16K实际上只是删除了.sh后缀的shell源。(用于Git的Git存储库将其所有shell脚本存储为.sh文件。)

fetch、fetch-pack、fmt-合并消息等命令都是作为一个相当大的二进制文件实现的。这只是Git构建方式的一个工件,目的是在发行版和运行时节省一点空间(例如,当一个Git命令的源代码想要调用git rev-parse时,这或多或少只是一个子程序调用--尽管实际上大部分都变成了一些更有趣的东西)。但是命令的虚线形式,git-foo,传统上也是可执行的。例如,有些脚本可能仍然运行git-commit而不是git commit

在一个过渡时期,Git包括名为git-foo的二进制文件,以及内置到一个大的、无所不包的二进制文件中的git foo。这都是由主Makefile处理的:不是所有像这样的库化的命令都是单独列出的。分离的链接分别安装在git-core目录中,而所有被转换成一个大块的链接都是安装在git-core中的符号链接,以防有人仍然试图用虚空的表单调用它们。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66220641

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档