git - 为什么 .git/hooks 有时会在克隆的存储库中丢失?

标签 git githooks atlassian-sourcetree

我有几个(Git for Windows 2.6.2 64-bit)我创建并开始使用相同方式的存储库:

  1. 运行 git init --bare <repoName>.git在 Git Bash 中。
  2. 使用 SourceTree 克隆新的存储库。
  3. 添加并提交初始文件(通过 SourceTree 或 EGit)。
  4. 废话,废话,废话....

在尝试添加一个常见的 post-commit Hook 这些克隆的存储库,我注意到只有其中一些有一个 .git/hooks目录。为什么?

我挖掘了有关丢失的问题/答案 .git/hook目录并没有在 SO 或更广泛的范围内找到任何东西。 Git 文档 mentions repo 初始化确保 ( .git/hooks/ ) .sample文件默认是可执行的;但我真的找不到任何似乎可以解释为什么我的克隆仓库有时包含 .git/hooks 的东西有时不。

谁能阐明这里的因果关系?谢谢。

最佳答案

git 存储库中定义的钩子(Hook)始终位于该存储库的本地。它们不是 git 历史的一部分,在克隆、获取或推送时不会传输。

因此,只需克隆一个带有钩子(Hook)的现有仓库,克隆仓库将没有任何上游钩子(Hook)。您必须手动将它们添加到克隆的存储库中。

This question解释了一些可帮助您实现这一目标的选项。

关于git - 为什么 .git/hooks 有时会在克隆的存储库中丢失?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33680880/

相关文章:

git - 如何在 GitHub 上运行 post-receive hook

git - 我可以将本地 Git 存储库安全地移动到硬盘驱动器中的其他位置吗?

git - git 身份验证的应用程序密码(bitbucket 和 sourcetree)

windows - Git 在 Windows 10 上运行缓慢

git - 为 bitbucket 上的一个存储库创建多个管道?

git - Cherry 选择压扁的提交

Windows 10 CLI 终端上的 git log 输出编码问题

git - 当存在 var_dump 时中止 git pre-commit 钩子(Hook)

java - 不使用 GIT 将 WAR 文件部署到 Openshift?

linux - 使用带有 git Hook 的脚本时找不到文件或目录