我有以下文件夹结构......
\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的文件夹中找到它?
提前致谢。