簡體   English   中英

$GIT_DIR 不再設置在預提交掛鈎中

[英]$GIT_DIR no longer set in pre-commit hooks

在預提交鈎子中使用 $GIT_DIR 將返回 .git 目錄的位置。 即使它沒有被明確設置為任何東西,在 pre-commit 鈎子中使用它仍然會返回位置。 更新后,轉移到 Git 2.18 似乎不再是這種情況,我的預提交鈎子的行為不同,無法按預期工作。 知道如何解決這個問題嗎?

一些非常詳細的信息可以在這里找到

https://public-inbox.org/git/20180826004150.GA31168@sigill.intra.peff.net/t/

為了問題的質量,我將盡力解釋。

使用 $GIT_DIR,當它沒有被明確設置時,在預提交鈎子中確實在 Git 2.18 之前工作,但是這是一個意外的副作用而不是預期的行為。

GIT 2.18 中的更改導致它停止工作。 在鏈接中,貢獻者提到在預提交鈎子(或任何鈎子)中獲取 .git 目錄位置的正確方法是使用這個 git 命令

git rev-parse --git-dir

他們可能會在未來制作一個補丁來將行為恢復到 2.18 之前的狀態,但我建議不要依賴未記錄和意外的行為

解決方法是,把

export GIT_DIR=${GIT_DIR-`git rev-parse --git-dir`}

在你的鈎子前面。

暫無
暫無

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

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