2015-11-12 66 views
5

我有幾個(GIT適用於Windows 2.6.2 64位),我創建並使用以同樣的方式開始回購:爲什麼.git/hooks在克隆回購中有時會丟失?

  1. 運行git init --bare <repoName>.git在Git中擊。
  2. 使用SourceTree克隆新回購。
  3. 添加並提交初始文件(通過SourceTree或EGit)。
  4. 胡說,胡說,胡說....

在試圖共同post-commit鉤添加到這些克隆的回購協議,我注意到,只有一些有.git/hooks目錄。爲什麼?

我挖掘了關於丟失.git/hook目錄的問題/答案,並沒有在SO或更廣泛的地方找到任何東西。 Git文檔mentions回購初始化確保(.git/hooks/.sample文件默認可執行;但我真的找不到任何似乎解釋爲什麼我的克隆回購有時包含.git/hooks而有時不包含的任何內容。

任何人都可以在這裏發揮原因和影響?謝謝。

+0

您是否找到了解釋?我剛剛遇到了這個問題。 .git/hooks在從Bitbucket服務器克隆存儲庫時丟失。我想知道它是否是一個SourceTree缺陷。 –

回答

3

git存儲庫中定義的鉤子總是本地存儲庫。它們不是git歷史的一部分,在克隆,讀取或推送時不會轉移。

因此,只需通過克隆現有的帶有鉤子的回購,克隆回購將沒有任何上游掛鉤。您必須手動將它們添加到克隆的存儲庫。

This question解釋了一些選項來幫助您達到此目的。

+1

感謝您的解釋;並且您引用的問題也進一步解釋得很好。然而,我仍然想知道的是,某些克隆中的'.git/hooks'目錄來自哪裏,爲什麼在整個克隆中'.git/hooks''存在/不存在不會是統一的,如果我遵循相同的過程來創建並開始使用每個克隆。 – J0e3gan