草庐IT

pre-commit-hook

全部标签

windows - Git 预提交 Hook 未在 Windows 上运行

我刚开始研究Git钩子(Hook),但我似乎无法让它们运行。我设置了一个本地存储库,所以我的项目文件夹中现在有一个“.git”目录。我在名为“pre-commit.cmd”的C:/path/to/my/project/.git/hooks目录中添加了一个“.cmd”文件。这是此文件的内容:echo"HOOKRUNNING"echo.2>C:/path/to/my/project/.git/hooks/EmptyFile.txt这应该回显文本“HOOKRUNNING”并在该目录中创建一个空文本文件。但是,如果我通过我的IDE(NetBeans)提交更改或使用GitBash提交,它们似乎都

git - 如果我之前执行 git add,git commit -am 是多余的吗?

运行gitadd.然后运行​​gitcommit-am"commitmessage"是否多余?我可以只运行gitadd.然后gitcommit-m"commitmessage"还是只运行gitcommit-am"commitmessage"? 最佳答案 Gitadd+gitcommit-m只会提交你添加的那些文件(新的和以前跟踪过的),但是gitcommit-am将提交对跟踪文件的所有更改,但不会添加新文件。 关于git-如果我之前执行gitadd,gitcommit-am是多余的吗?,

git - 如果我之前执行 git add,git commit -am 是多余的吗?

运行gitadd.然后运行​​gitcommit-am"commitmessage"是否多余?我可以只运行gitadd.然后gitcommit-m"commitmessage"还是只运行gitcommit-am"commitmessage"? 最佳答案 Gitadd+gitcommit-m只会提交你添加的那些文件(新的和以前跟踪过的),但是gitcommit-am将提交对跟踪文件的所有更改,但不会添加新文件。 关于git-如果我之前执行gitadd,gitcommit-am是多余的吗?,

git - 我将如何在 Git 中编写预 merge Hook ?

这个问题说明了一切。有没有办法在merge之前执行操作?我猜想有一种方法可以利用pre-commitHook,但我不太确定。 最佳答案 您可以尝试使用prepare-commit-msgHook。第二个参数将是merge“如果提交是merge或.git/MERGE_MSG文件存在”。非零退出状态将中止提交。我认为这不适用于快进merge,因为不会有提交消息。关于钩子(Hook)的更多信息:https://www.kernel.org/pub/software/scm/git/docs/githooks.html#_prepare_c

git - 我将如何在 Git 中编写预 merge Hook ?

这个问题说明了一切。有没有办法在merge之前执行操作?我猜想有一种方法可以利用pre-commitHook,但我不太确定。 最佳答案 您可以尝试使用prepare-commit-msgHook。第二个参数将是merge“如果提交是merge或.git/MERGE_MSG文件存在”。非零退出状态将中止提交。我认为这不适用于快进merge,因为不会有提交消息。关于钩子(Hook)的更多信息:https://www.kernel.org/pub/software/scm/git/docs/githooks.html#_prepare_c

git-commit - 致命的 : No existing author found with 'XXX'

第一次使用git,设置了用户名和用户邮箱。我使用的命令如下:gitconfig--globaluser.email"bob@example.com"gitconfiguser.email"bob@example.com"gitconfig--globaluser.name"bob"gitconfiguser.name"bob"当我运行gitcommit--author"bob"时,出现错误fatal:Noexistingauthorfoundwith'bob'。如何设置用户名和邮箱? 最佳答案 你应该停止使用--author每次提交

git-commit - 致命的 : No existing author found with 'XXX'

第一次使用git,设置了用户名和用户邮箱。我使用的命令如下:gitconfig--globaluser.email"bob@example.com"gitconfiguser.email"bob@example.com"gitconfig--globaluser.name"bob"gitconfiguser.name"bob"当我运行gitcommit--author"bob"时,出现错误fatal:Noexistingauthorfoundwith'bob'。如何设置用户名和邮箱? 最佳答案 你应该停止使用--author每次提交

git - 如何撤消 git commit --amend

这个问题在这里已经有了答案:Howtoundo“gitcommit--amend”doneinsteadof“gitcommit”(12个回答)3年前关闭。我不小心输入了gitcommit--amend。这是一个错误,因为我意识到提交实际上是全新的,应该使用新消息提交。我想做一个新的提交。如何撤消此操作? 最佳答案 PetSerAl'scomment是关键。这是执行您想要的操作的两个命令序列:gitreset--soft@{1}gitcommit-C@{1}并解释这是如何工作的。描述当您进行新的提交时,Git通常1使用以下事件序列:

git - 如何撤消 git commit --amend

这个问题在这里已经有了答案:Howtoundo“gitcommit--amend”doneinsteadof“gitcommit”(12个回答)3年前关闭。我不小心输入了gitcommit--amend。这是一个错误,因为我意识到提交实际上是全新的,应该使用新消息提交。我想做一个新的提交。如何撤消此操作? 最佳答案 PetSerAl'scomment是关键。这是执行您想要的操作的两个命令序列:gitreset--soft@{1}gitcommit-C@{1}并解释这是如何工作的。描述当您进行新的提交时,Git通常1使用以下事件序列:

git - 提交后 Hook 未运行

我的提交后钩子(Hook)在git之后没有运行。如果我只是从终端运行它,我已经验证了钩子(Hook)确实有效。钩子(Hook)中的代码是:#!/bin/sh#.git/hooks/post-commit#Anexamplehookscriptthatiscalledafterasuccessful#commitismade.##Toenablethishook,renamethisfileto"post-commit".perl-pi-e's/([a-f0-9]+)$/'$(gitrev-parseHEAD)/../../config/commit.git我确实在./.git/hook