Bash Git别名引用从repo子目录执行的命令

Bash Git别名引用从repo子目录执行的命令,bash,git,git-alias,Bash,Git,Git Alias,.gitconfig中定义的两个git函数(使用别名) 创建文件=“!f(){for name in\“$@”do echo$name>$name.txt;done;};f” m-commit=“!f(){对于\“$@”中的名称,是否git创建文件$name;完成;};f” git m-commit a b c 这可以从git repo的顶级目录运行 如何使其从子目录运行(在该子目录中而不是在顶部创建测试文件) 谢谢你的帮助 顶级目录的名称是由bash中的git rev parse--show

.gitconfig中定义的两个git函数(使用别名)

创建文件=“!f(){for name in\“$@”do echo$name>$name.txt;done;};f”

m-commit=“!f(){对于\“$@”中的名称,是否git创建文件$name;完成;};f”

git m-commit a b c

这可以从git repo的顶级目录运行

如何使其从子目录运行(在该子目录中而不是在顶部创建测试文件)


谢谢你的帮助

顶级目录的名称是由bash中的git rev parse--show toplevel

输出的,您为什么不在\“$@”中为name指定一个名呢,这两个命令都没有理由是Git别名;前者根本不使用Git,后者只使用Git,因为
create file
是一个Git别名。如果我更新create file=“!createFile(){for name in\“$@\”do echo$name>\“${Git\u PREFIX:-.}\”/$name.txt;done;};createFile”这将像git create_file ab c一样工作,但仍然不像git m_commit ab c那样工作,因为文件仍将在顶层目录中创建。这个附加工作很有教育意义,可以在repo的任何子目录中提交许多简单的文件。