仅新分支上的Git签出后挂钩
我正在尝试创建一个git钩子,它仅在签出新分支时(即使用了仅新分支上的Git签出后挂钩,git,githooks,Git,Githooks,我正在尝试创建一个git钩子,它仅在签出新分支时(即使用了-b标志)才会在签出后运行。我正在使用一个签出后钩子,并尝试了各种技术来让它像检查oldrev一样工作 post checkout是我想要的钩子吗?如果是这样的话,我应该在脚本中使用什么逻辑,这样钩子只在签出新分支时生效 谢谢大家! 问题在于找不到挂钩(可以使用签出后挂钩)。 它用于检测刚刚创建的新本地分支 但“新”与哪个部门相比?很难理解,因为你不知道要考虑哪一个分支。 您还可以验证分支是否已签出一次 或者,您也可以维护本地分支的缓存:
-b
标志)才会在签出后运行。我正在使用一个签出后钩子,并尝试了各种技术来让它像检查oldrev一样工作
post checkout
是我想要的钩子吗?如果是这样的话,我应该在脚本中使用什么逻辑,这样钩子只在签出新分支时生效
谢谢大家! 问题在于找不到挂钩(可以使用签出后挂钩)。
它用于检测刚刚创建的新本地分支
但“新”与哪个部门相比?很难理解,因为你不知道要考虑哪一个分支。
您还可以验证分支是否已签出一次
或者,您也可以维护本地分支的缓存:ls.git\refs\heads的输出,保存在称为“缓存”的文件中。
每次启动post checkout
hook时,它都会执行ls.git\refs\heads
并将其与缓存进行比较。如果看到一个新条目(并且.git\refs\remotes\origin
中没有类似的分支),很可能是:这是第一次创建的新本地分支。
然后钩子会更新缓存文件。据我所知,一旦创建了“新”分支,就无法区分“旧”分支。我认为git无法提供一种方法来实现您想要的功能。你可以通过查看有多少条reflog条目来获得偶尔的成功。可能重复的感谢,在问我的问题之前,我把上面提到的问题作为可能的重复阅读。它的答案是如何使用签出后钩子,但不要回答检测新分支的问题。@westonkd我认为这是最可靠的方法。