git - 无法符号链接(symbolic link)到 .git 目录

标签 git cygwin githooks

这可能有些愚蠢,但四处搜索我还没有找到答案。 我正在尝试为我的 git 项目设置预提交 Hook ,以便脚本可以与源代码一起进行版本控制。

似乎支持符号链接(symbolic link)以及实现此目的的方法。当我尝试使用 .git 目录中的任何内容时,我收到错误“没有这样的文件或目录”。 .git 目录的设置方式有什么奇怪的地方吗?我现在正在 Windows 上通过 cygwin 执行此操作,以防相关。

例如,我用来设置符号链接(symbolic link)的脚本如下所示:

#/bin/bash

HOOK_NAMES="pre-commit post-commit"
THIS_SCRIPT_DIR=$(dirname $0)
HOOK_DIR=$THIS_SCRIPT_DIR/../.git/hooks

for hook in $HOOK_NAMES; do
    ln -s -f $THIS_SCRIPT_DIR/git-hooks/$hook $HOOK_DIR/$hook
done

谢谢,

====

跟进:这似乎是 Cygwin 的一个问题,但我还没有找到解释它的文档。这在 Linux 和 OS X 上运行良好。Cygwin 在隐式 stash 文件夹(以 . 为前缀)中创建符号链接(symbolic link)时遇到问题。如果有人知道为什么我会很乐意将该解释标记为答案。

最佳答案

我不知道为什么这在 Cygwin 中不起作用(对我来说似乎是一个错误)但是如果其他人有同样的问题我可以通过从 .git 内部创建符号链接(symbolic link)来解决它文件夹。因此,例如,从命令行转到 .git/hooks 文件夹:

> cd .git/hooks

然后创建链接

> ln -s ../../git-hooks/pre-commit pre-commit

关于git - 无法符号链接(symbolic link)到 .git 目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12643603/

相关文章:

Git 将本地存储库推/pull 到本地存储库 (Windows)

git - 更改分支的父级

java - 创建类以在 Java 中使用文档转换和概念洞察

ssh - 来自 cygwin 的 Vagrant 和 ansible 配置

c++ - cin 在 Windows 上不能使用空字符串 when_GLIBCXX_DEBUG?

git - 使用 SSH key 时为 "*** Please tell me who you are."

linux - 哪个 cygwin 包获取 `parallel` 命令?

git - git tag hook 的类似物

mysql - Git Pre-Commit 钩子(Hook)在提交后添加文件

git - "git remote update"的本地 git 钩子(Hook)?