我想出了如何使用我的主文件夹中的.bashrc文件(使用.bash_profile的解决方法)在git bash中加载函数来加载:
# Example
function cush() {
git add Figures/;
git commit -am "$1"; # Parse string to git
git push;
}
但是这个函数专用于LaTeX,我实际上只需要在特定类型的存储库中工作时使用它。 所以我的问题是是否有一种方法可以在本地创建函数,这样它会在加载特定文件夹中的git bash时加载? 这激发了特定于存储库的功能,就像.gitignore一样。
答案 0 :(得分:1)
This question可能有所帮助。我尝试了这个解决方案,它可以在我的Ubuntu15.x和git版本2.8.2中工作,而其他人有错误。
[alias] cush = !git add . && git commit -m $1 && git push && :
因此您可以将此别名添加到本地配置中并运行git cush <message>
。
答案 1 :(得分:1)
通常,您不必担心定义不必要的函数,除非您想为不同的依赖于上下文的函数使用相同的名称。 bash
在工作目录更改时不直接提供用于执行代码的挂钩,但是您可以(ab)使用PROMPT_COMMAND
每次根据$PWD
的值有条件地执行代码显示新提示。
.bash-functions
.bash-functions/latex
创建一个文件.bash-functions/un-latex
,其中包含用于取消设置LaTeX特定功能的代码,例如
unset -f cush
将以下内容添加到.bashrc
:
source_local_functions () {
source ./bash-functions/un-latex
if [[ $PWD == foo ]]; then
source ./bash-functions/latex
fi
}
PROMPT_COMMAND=source_local_functions
现在,每次显示新提示时,bash
将取消设置特定于LaTex的函数,如果您位于名为foo
的目录中,则重置它们(您显然可以调整此测试应该使用LaTeX函数的真实目录。
如果您要定义其他特定于目录的函数,则会变得难以处理,因为您需要跟踪要取消设置的函数以及为每次目录更改设置的函数。