0

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

\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 与 *Nix 格式,我本来希望/喜欢它返回 /c/GitRepo/IgnoredFolder/SubRepo。

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

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

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

但它不是在当前目录(我想要“操作”的新 SubRepo 文件夹)上运行,而是在包含 git repo 的第一个祖先文件夹(在本例中为 c:\GitRepo)上运行。

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

提前致谢。

4

0 回答 0