【问题标题】:git --git-dir not working in windowsgit --git-dir 在 Windows 中不起作用
【发布时间】:2023-04-11 06:32:01
【问题描述】:

在 Git 的钩子脚本中,我正在尝试运行这样的命令..

请参考(git --git-dir not working as expected)

git log --name-status --git-dir="C:\Documents and Settings\user\My Documents\Visual Studio 2008\Projects\CMS\.git" --work-tree="C:\Documents and Settings\user\My Documents\Visual Studio 2008\Projects\CMS"

当我运行此命令时,我收到以下错误。

fatal: Not a git repository (or any of the parent directories): .git

我使用的命令有什么问题吗?

【问题讨论】:

    标签: git msysgit


    【解决方案1】:

    我最近在 Mac 上遇到了这个问题,我的解决方案是将 --git-dir 和 --work-tree 指令放在 git 子命令之前。

    所以,你的命令应该是这样的:

    git --git-dir="C:\Documents and Settings\user\My Documents\Visual Studio 2008\Projects\CMS\.git" --work-tree="C:\Documents and Settings\user\My Documents\Visual Studio 2008\Projects\CMS" log --name-status
    

    HTH,它对我有用。

    【讨论】:

    • 奇怪的是它之后对任何人都有效。 --git-dirgit 的选项,而不是 log 的选项。
    • 感谢它也解决了 Windows 上的问题:"c:\program files (x86)\git\bin\git.exe" --git-dir="c:/path/to/repo/.git" --work-tree="c:/path/to/repo" commit -m"Message" c:\path\to\repo\file.test
    【解决方案2】:

    由于它是一个挂钩脚本,它可能会在 bash 会话中使用POSIX paths,而不是 Windows 路径。

    git log --name-status --git-dir='/C/Documents and Settings/user/My Documents/Visual Studio 2008/Projects/CMS/.git' --work-tree='/C/Documents and Settings/user/My Documents/Visual Studio 2008/Projects/CMS'
    

    从 DOS 会话(如“不是钩子”)中,路径可能如下所示:

    git log --name-status --git-dir='C:/Documents and Settings/user/My Documents/Visual Studio 2008/Projects/CMS/.git' --work-tree='C:/Documents and Settings/user/My Documents/Visual Studio 2008/Projects/CMS'
    

    替代语法(未测试):"c:\\xxx\\yyy\\..."

    【讨论】:

    • @Syam:我已经用 POSIX 路径更新了我的答案。试一试。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-26
    • 2018-11-18
    • 1970-01-01
    • 2015-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多