簡體   English   中英

Git:結帳而不運行結帳后掛鈎

[英]Git: checkout without running post-checkout hook

我有一個我喜歡的結賬后掛鈎——大多數時候——但有時我知道運行它會浪費時間,或者,因為它刪除並重建了我的開發數據庫,​​我不想要它做它的事。

是否有跳過鈎子的 git 選項? 太公平了,我特意找了一個。

我不認為有一個命令行選項可以做你想做的事,但你可以通過使用環境變量作為標志來輕松解決這個問題。 在您post-checkout腳本中,從以下內容開始:

#!/bin/sh
[ "$SKIP_POST_CHECKOUT" = 1 ] && exit 0

然后當您想跳過post-checkout腳本時:

SKIP_POST_CHECKOUT=1 git pull

等等。

如果輸入太多,您可以隨時縮短變量名稱:)。

您可以通過強制core.hooksPath成為不存在的路徑(通過-c )從命令行執行此操作

例如:

$ cat .git/hooks/post-checkout 
#!/usr/bin/env bash
echo 'nope'
exit 1
$ git checkout -- .
nope
$ git -c core.hooksPath=/dev/null checkout -- .
$ 

我剛剛找到了另一個答案 只需將-c core.hooksPath=/dev/null選項添加到您的 git 命令。 這將僅覆蓋一個命令的配置,並禁用所有掛鈎。 對於營地:

git -c core.hooksPath=/dev/null checkout master
git -c core.hooksPath=/dev/null pull
git -c core.hooksPath=/dev/null commit ...
git -c core.hooksPath=/dev/null push

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM