【问题标题】:GIT run script before git add在 git add 之前运行 GIT 脚本
【发布时间】:2013-10-24 21:44:02
【问题描述】:

我经常需要在执行 git add . 之前执行 make clean / make distclean,因为我不想包含二进制文件和其他内容。

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

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

【问题讨论】:

  • 我不知道你所说的“高效”是什么意思,但是.gitignore 非常灵活。
  • 例如,二进制文件的名称可能会改变,或者当我添加新的二进制文件时,我也必须将其添加到 .gitignore 中,最好的方法是什么?
  • 修改gitignore的同时你做出改变(或引入)二进制文件的名称。
  • grep -q "^$@$$" .gitignore || echo $@ >>.gitignore 添加到您的 makefile 的二进制文件配方中。
  • 也许在预提交脚本中你可以做你需要的并运行 git add 。最后,提交可以很好地处理您的更改

标签: git bash git-add


【解决方案1】:

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

【讨论】:

  • 谢谢!您能否更清楚地了解预提交挂钩?是否可以使用该钩子运行脚本?我可以执行类似“git reset;make clean;git add”之类的操作。
  • 是的,您可以运行脚本以及允许或禁止提交。你可以阅读关于 Git 钩子 here.
猜你喜欢
  • 1970-01-01
  • 2010-11-23
  • 2013-08-13
  • 2021-05-17
  • 2018-07-09
  • 2019-10-16
  • 2018-02-14
  • 2016-02-14
  • 2010-10-09
相关资源
最近更新 更多