【问题标题】:Get commit message on post-commit hook and reuse it在提交后挂钩上获取提交消息并重用它
【发布时间】:2020-02-12 13:40:05
【问题描述】:

这是我的提交后文件:

#!/bin/sh
unset GIT_INDEX_FILE

git --work-tree=../foo2 --git-dir=/m/Downloads/foo1/.git checkout -f

cd ../foo2/
git add .
git commit -m $1

当在foo1 存储库上进行提交时,我需要将提交的文件移动到foo2 存储库并使用相同的提交消息提交这些文件。

移动文件的步骤工作正常。我现在的问题是获取提交消息。

【问题讨论】:

  • 为什么不将提交推送到其他存储库?
  • @DanielA.White 你提出了一个好主意。我可以推送到其他本地存储库吗?我在我的脚本上发现了一个问题:它移动了所有文件,而不仅仅是提交的文件。

标签: git githooks


【解决方案1】:

你可以通过git show获得提交信息:

git show --no-patch --format=%B

您也可以在提交时使用 STDIN 作为提交消息:

echo "foo" | git commit --file=-

通过这两个位,您应该能够从一个 repo 中获取提交消息并将其用作另一个 repo 中的提交消息:

git --git-dir=/m/Downloads/foo1/.git show --no-patch --format=%B | git commit --file=-

【讨论】:

  • 我正在尝试运行此命令但没有成功:git commit -m git show --no-patch --format=%B
  • 我不明白你的最后一个例子。我需要在这一行添加提交消息:git commit -m "COMMIT MESSAGE"
  • git show 为您提供信息。你可以把它放在一个变量中然后做git commit -m "$msg"。不过,您可以告诉git commit 使用标准输入的内容作为消息,而不是使用变量(如第二个 sn-p 所示)。 echo "foo" | git commit --file=-git commit -m "foo" 相同。
猜你喜欢
  • 2015-03-09
  • 2010-12-23
  • 2021-10-22
  • 2015-05-21
  • 1970-01-01
  • 2015-09-10
  • 1970-01-01
  • 1970-01-01
  • 2011-07-20
相关资源
最近更新 更多