繁体   English   中英

无法符号链接到.git目录

[英]Unable to symlink to the .git directory

这可能是愚蠢的事情,但搜索我无法找到答案。 我正在尝试为我的git项目设置预提交挂钩,以便脚本可以与源一起进行版本控制。

它似乎支持符号链接和方法。 当我尝试使用.git目录中的任何内容时,我收到错误“没有这样的文件或目录”。 关于.git目录的设置方式有什么奇怪的吗? 我正在通过Windows上的cygwin这样做,以防万一。

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

#/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在隐式隐藏文件夹(.prefixed)中创建符号链接时遇到问题。 如果有人知道为什么我会高兴地将这个解释标记为答案。

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

> cd .git/hooks

然后创建链接

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

您似乎正在尝试从存储库本身符号链接您的.git/hooks 我不认为这是Git支持的,这可以解释你遇到的错误。

这个答案提出了其他方法,其中大多数建议采用其他方式(将.git/hooks 作为符号链接)。 你可能会找到一个最适合你的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM