【问题标题】:Setting up a hook for git add为 git add 设置一个钩子
【发布时间】:2015-03-29 05:01:48
【问题描述】:

由于我目前正在从事一个相当大的软件开发项目(我们仍处于规划阶段),因此我们一直在考虑一个合适的 VCS。 对于我们希望与整个团队协作的某些功能,我们需要在将某些内容添加到暂存区域时执行一个 shell 脚本。

我已经阅读了不同的网站和 Git Book 以及 Git 的手册页,但找不到解决方案。

有各种各样的钩子; Pre-Commit、Prepare-commitmsg 等,但不幸的是,没有任何 (AFAIK) 可以响应暂存区的变化。

提前感谢您提供的任何帮助。

编辑:根据我得到的评论(并且我已经尝试过),我现在知道我想要使用 git clean 过滤器。它允许我执行我想要执行的操作并通过提供非零返回值来取消阶段。不过,这并没有真正的帮助,因为我需要一些交互式的东西,或者至少需要为用户提供输出,而这似乎无法通过使用过滤器来实现。

【问题讨论】:

  • imnsho,每当任何开发人员将一些随机的内容放到他们自己的仓库中时,您都不想广播单个击键,这几乎没有价值。也就是说,如果你真的需要,git 称这些为“过滤器”。
  • @jthill:你说得对,过滤器几乎就是我需要的。有没有办法在过滤器结束时向用户传递消息?

标签: git version-control githooks collaboration


【解决方案1】:

使用您自己已经发现的 git 过滤器。

要向用户输出消息,您可以在 shell 脚本中将 stdout 重定向到 stderr,例如 echo "message to user" >&2

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-12-06
    • 1970-01-01
    • 2020-10-09
    • 2012-02-24
    • 1970-01-01
    • 1970-01-01
    • 2015-12-21
    • 1970-01-01
    相关资源
    最近更新 更多