草庐IT

pre-commit-hook

全部标签

git - 编写拒绝无效子模块提交的 git update hook 的最佳方法是什么?

我正在尝试写一个update如果子模块正在更新为子模块的上游存储库中不存在的提交ID,则git的钩子(Hook)会反弹。换句话说,我想强制用户在将更改推送到子模块指针之前将更改推送到子模块存储库。一个警告:我只想测试其裸上游存储库与父存储库存在于同一服务器上的子模块。否则我们将开始不得不做一些疯狂的事情,比如从git钩子(Hook)中调用“gitclone”或“gitfetch”,这不会很有趣。我一直在尝试一个想法,但感觉必须有更好的方法来做到这一点。这是我计划在更新Hook中执行的操作:检查传递给Hook的引用名,看看我们是否正在更新refs/heads/下的内容.如果没有,请提前退

Git 如何修改历史的 Commit message

    目录修改最近一条Commit修改过去若干条Commit场景:当分批次多次提交时,突然发现提交的message不符合规范,想要修改,这时就可以使用了修改最近一条Commit如果只是想修最近一条Commit,直接使用命令:gitcommit--amend就可以进行修改,命令行会进入vim的界面,让你修改上一次的提交Message,改好消息,退出即可。然后强制的push(gitpushorigin分支名 -f)一下。修改过去若干条Commit如果要修改过去若干条Commit的Message,不管改不改最新那一条,都会稍微有点麻烦。比如我一个需求,提交了三个commit,首先先执行gitlog

git - 在 shell 上找到 git hooks 目录的路径

如何找到当前Git存储库的.git/hooks目录的完整路径?我看到以下问题:深入目录结构我可能在git存储库目录结构的任何深处,例如/home/user/project/.git/hooks我在文件夹里/home/user/project/foo/bar/baz/子模块较新的git版本将子模块元数据不放入.git/中,而是放在主存储库中,而.git只是一个文件,例如$cat/home/user/project/vendor/foo/.gitgitdir:../../.git/modules/vendor/foo所以在这种情况下,钩子(Hook)目录在/home/user/projec

git - 在 shell 上找到 git hooks 目录的路径

如何找到当前Git存储库的.git/hooks目录的完整路径?我看到以下问题:深入目录结构我可能在git存储库目录结构的任何深处,例如/home/user/project/.git/hooks我在文件夹里/home/user/project/foo/bar/baz/子模块较新的git版本将子模块元数据不放入.git/中,而是放在主存储库中,而.git只是一个文件,例如$cat/home/user/project/vendor/foo/.gitgitdir:../../.git/modules/vendor/foo所以在这种情况下,钩子(Hook)目录在/home/user/projec

windows - 在 Windows 上从命令行向 git commit -m 添加换行符

我的公司有一项政策,即对特定项目的所有checkin都必须遵循特定的多行git提交模板。我怎样才能最简单地从Windows命令行创建一个包含多行的单个提交消息?这几乎完全是“Addlinebreaktogitcommit-mfromcommandline”的副本,除了这个问题特定于Windows/cmd.exe,而那个问题与bash相关。 最佳答案 要么创建一个包含正确格式的提交消息的文件,要么使用gitcommit-F,之后您可以继续编辑和重复使用同一个文件,或者创建一个模板文件并使用gitcommit-t使用要填写的预煮模板打开

windows - 在 Windows 上从命令行向 git commit -m 添加换行符

我的公司有一项政策,即对特定项目的所有checkin都必须遵循特定的多行git提交模板。我怎样才能最简单地从Windows命令行创建一个包含多行的单个提交消息?这几乎完全是“Addlinebreaktogitcommit-mfromcommandline”的副本,除了这个问题特定于Windows/cmd.exe,而那个问题与bash相关。 最佳答案 要么创建一个包含正确格式的提交消息的文件,要么使用gitcommit-F,之后您可以继续编辑和重复使用同一个文件,或者创建一个模板文件并使用gitcommit-t使用要填写的预煮模板打开

git - git commit --amend 究竟是如何工作的?

我看过'gitcommit--amend'indetachedHEADstate。这个问题要求答案比需要的更复杂。我想了解gitcommit--amend在正常的HEAD情况下是如何工作的。 最佳答案 假设您处于干净的工作状态并且您的存储库如下所示:如果你然后运行gitcommit--amend写一个提交消息,保存并退出你的编辑器,发生以下情况:您的暂存区域(如果您没有暂存任何新更改,它将与提交f42c5相同)用于创建新提交:31b8e。它的父级将与您正在修改的提交的(那些)相同:f42c5。master分支引用已移动以指向该新提交

git - git commit --amend 究竟是如何工作的?

我看过'gitcommit--amend'indetachedHEADstate。这个问题要求答案比需要的更复杂。我想了解gitcommit--amend在正常的HEAD情况下是如何工作的。 最佳答案 假设您处于干净的工作状态并且您的存储库如下所示:如果你然后运行gitcommit--amend写一个提交消息,保存并退出你的编辑器,发生以下情况:您的暂存区域(如果您没有暂存任何新更改,它将与提交f42c5相同)用于创建新提交:31b8e。它的父级将与您正在修改的提交的(那些)相同:f42c5。master分支引用已移动以指向该新提交

svn - 如何制作防止非 UTF-8 文件编码的预提交 Hook

是否可以为git或svn制作一个预提交Hook,以拒绝未以特定编码提交的文件?我参与过几个项目,坚持使用某种文件编码(例如UTF-8)似乎是个问题 最佳答案 您的iconv可能会告诉您某些内容是否不是UTF-8,但其他编码可能并不那么容易(尤其是8位、单字节编码,如ISO-8859-1).对于Git,您可能实际上需要更新Hook而不是预提交Hook(以便它可以在中央存储库中运行以执行规则)。Git预提交Hook:#!/bin/shgitls-files-z--|xargs-0sh-c'e=""forf;doif!gitshow:"$

svn - 如何制作防止非 UTF-8 文件编码的预提交 Hook

是否可以为git或svn制作一个预提交Hook,以拒绝未以特定编码提交的文件?我参与过几个项目,坚持使用某种文件编码(例如UTF-8)似乎是个问题 最佳答案 您的iconv可能会告诉您某些内容是否不是UTF-8,但其他编码可能并不那么容易(尤其是8位、单字节编码,如ISO-8859-1).对于Git,您可能实际上需要更新Hook而不是预提交Hook(以便它可以在中央存储库中运行以执行规则)。Git预提交Hook:#!/bin/shgitls-files-z--|xargs-0sh-c'e=""forf;doif!gitshow:"$