gpt4 book ai didi

预推钩中的 git commit

转载 作者:IT王子 更新时间:2023-10-29 01:30:35 25 4
gpt4 key购买 nike

我在 pre-push 钩子(Hook)中添加了类似的东西:

gs0=$(git status)
pip-dump
gs1=$(git status)
if [ "gs0" != "gs1" ]
then
git commit -m "pip-dump"
fi

(这是更新我的 pip 需求文件)

似乎推送不是推送新提交,而是推送脚本开头 HEAD 所在的提交。

如何解决?

最佳答案

你不能:push 命令在调用 hook 之前找出要推送的提交,并在 hook 退出 0 时推送它。

我看到三个选项:

  1. 非零退出,告诉用户“推送被拒绝,因为我添加了一个提交”
  2. 从零退出,告诉用户“推送已完成,但你需要再次推送,因为我添加了一个提交”
  3. 在添加新提交后在钩子(Hook)内做另一个(不同的)推送,注意你的钩子(Hook)不会无休止地递归,因为“内部”推送运行决定做另一个“内部再次”推送的钩子(Hook),等等. 然后,退出非零,中止“外部”推送,在宣布您必须执行“内部”推送才能发送额外提交之后。

我个人的偏好是第一个。预推送 Hook 意味着作为“验证此推送是否正常”操作,而不是“更改此推送以表示其他一些不同的推送”操作。所以这意味着您并没有违背软件的“意图”。使用pre-push hook作为验证者;如果你想要一个在自动添加 pip-dump 提交后调用 git push 的脚本(如果需要),请将其编写为脚本,使用不同的名称,例如 转储和推送

关于预推钩中的 git commit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21334493/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com