Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么git过滤器分支没有链接?_Git_Macos_Github - Fatal编程技术网

为什么git过滤器分支没有链接?

为什么git过滤器分支没有链接?,git,macos,github,Git,Macos,Github,我在macOS 11.2.1上安装了git,git版本是2.30.1,我在/usr/local/ceral/git/2.30.1/libexec/git core中运行ls-lih,并得到了这个结果 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:

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

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过滤器分支没有链接?谢谢。

filter branch命令是作为一个shell脚本实现的(然后它运行大量Git管道命令,加上像
sed
之类的东西,当然还有您指定的任何过滤器,以完成其工作)。所以“二进制”——一个很小的16K实际上只是去掉了
.sh
后缀的shell源代码。(Git的Git存储库将其所有shell脚本存储为
.sh
文件。)

fetch、fetch pack、fmt merge message等命令都作为一个相当大的二进制文件实现。这只是Git构建方式的一个产物,意味着在发行版和运行时节省一些空间(例如,当一个Git命令的源代码想要调用
Git rev parse
,这或多或少只是一个子程序调用,尽管事实上,这其中的大部分都变成了更奇特的东西)。但是虚线形式的命令,
gitfoo
,传统上也是可执行的。例如,有些脚本可能仍然运行
git commit
,而不是
git commit


在过渡期,Git包括名为
GitFoo
的二进制文件,以及内置于一个大型包罗万象的二进制文件中的
GitFoo
。所有这些都由主Makefile处理:没有像这样完全库化的命令与已库化的命令分开列出。那些单独的将分别安装在
git-core
目录中,而那些变成一个大集合的将在
git-core
中安装符号链接,以防仍有人试图用虚线形式调用它们。

我明白了,非常感谢。