Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.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脚本_Git_Bash_Git Add - Fatal编程技术网

在GIT添加之前运行GIT脚本

在GIT添加之前运行GIT脚本,git,bash,git-add,Git,Bash,Git Add,我通常需要先做makeclean/makedistclean,然后再做git添加。,因为我不想包含二进制和其他内容 我知道我可以在.gitignore中添加一些名称/模式,但这不是很有效率和灵活性。另一个解决方案是创建一个bash文件,但这需要在我的存储库中添加一个我不想要的额外文件 是否有任何预添加配置允许我在实际执行git add之前运行脚本?git提供的最早的钩子是预提交钩子。此时,git add应该已经运行了,但是您可以编写一个预提交钩子来确保没有添加某些文件/文件扩展名。但是,这将需要

我通常需要先做makeclean/makedistclean,然后再做
git添加。
,因为我不想包含二进制和其他内容

我知道我可以在
.gitignore
中添加一些名称/模式,但这不是很有效率和灵活性。另一个解决方案是创建一个bash文件,但这需要在我的存储库中添加一个我不想要的额外文件


是否有任何预添加配置允许我在实际执行
git add
之前运行脚本?

git提供的最早的钩子是预提交钩子。此时,
git add
应该已经运行了,但是您可以编写一个预提交钩子来确保没有添加某些文件/文件扩展名。但是,这将需要与gitignore文件相同的维护量。

我不知道你所说的“高效”是什么意思,但是
.gitignore
非常灵活。例如,二进制文件的名称可能会更改,或者当我添加新二进制文件时,我也必须将其添加到.gitignore中,最好的方法是什么?在进行更改的同时修改
gitignore
,更改(或引入)二进制文件的名称。添加
grep-q“^$@$.”。gitignore | | echo$@>。gitignore
到makefile的二进制文件配方中。也许在预提交脚本中,您可以执行所需的操作并运行git Add。最后,提交将与您的ChangesHanks配合使用!关于预提交钩子,你能说得更清楚些吗?是否可以使用该钩子运行脚本?我可以执行类似“git reset;make clean;git add”的操作。是的,您可以运行脚本以及允许或不允许提交。您可以阅读有关Git挂钩的内容。