Git脚本函数中的命令(Windows)在Git回购下的子文件夹中不能按预期工作

时间:2014-04-26 05:06:24

标签: windows git bash powershell git-alias

我有以下文件夹结构......

\GitRepo
    \.git
    [files]
    \IgnoredFolder #ignored from .gitignore
        \SubRepo

我正在尝试修改我的.gitconfig文件中的脚本函数,我需要知道当前目录,但我的行为很奇怪。

对于我的所有测试,我已经打开了一个托管Windows PowerShell的Console2窗口来运行我的git命令。

提示如果我输入 $ pwd ,它'正确'显示C:\ GitRepo \ IgnoredFolder \ SubRepo。我说'正确'但它是Windows格式而不是* Nix。

在我的.git配置中,我创建了这个别名:

test = "!f() { echo ${PWD}; }; f"

现在,如果我从提示符输入 git test ,我会得到/ c / GitRepo的'错误'显示。我说'不正确'是因为,忽略Windows vs * Nix格式,我本来希望/喜欢它返回/ c / GitRepo / IgnoredFolder / SubRepo。

其他命令的行为方式相同(即在包含.git存储库而不是当前工作目录的第一个文件夹中运行。

例如,我想创建的真正别名基本上是一个命令中init,add,commit,remote,config all的快捷方式。伪别名看起来像这样......

create = "!f() { git init; git add .; git commit -am "$1"; ... anything else ... }; f"

但是它不是在当前目录上运行(新的SubRepo文件夹,我想'动作'),而是在包含git repo的第一个祖先文件夹(在这种情况下为c:\ GitRepo)上运行。

有没有办法让git别名脚本函数在当前目录下工作,无论是否在包含repo的文件夹中找到它?

提前致谢。

0 个答案:

没有答案