我可以为Git别名使用一组命令(外部和内部)吗?

我可以为Git别名使用一组命令(外部和内部)吗?,git,Git,Git for Windows无法写入位于网络上的配置文件 以下内容可用作该错误的解决方法: mv "//hyprostr/dfs/groups/developers/settings/gitconfig.txt" "./gitconfig.txt" git config -f "./gitconfig.txt" http.proxy http://@proxy2:8080 mv "./gitconfig.txt" "//hyprostr/dfs/groups/developers/settin

Git for Windows无法写入位于网络上的配置文件

以下内容可用作该错误的解决方法:

mv "//hyprostr/dfs/groups/developers/settings/gitconfig.txt" "./gitconfig.txt"
git config -f "./gitconfig.txt" http.proxy http://@proxy2:8080
mv "./gitconfig.txt" "//hyprostr/dfs/groups/developers/settings/gitconfig.txt"
这不是一个好的解决方案,但对我来说很有效

但我想通过Git别名调用这组命令。。。注意-第一个和最后一个命令是外部命令,而第二个命令是内部命令

我阅读了关于
alias.*
git帮助配置
部分。阅读后,我认为不可能通过别名编写这三个命令。我说得对吗?我希望我错了,但这是可能的。如果我错了,那我怎么做呢

UPD(决策)

感谢@VonC的回答。我写了这样的剧本:

# edit_config.sh
# © Andrey Bushman, 2015
# This is a workaround of the problem described here:
# https://github.com/git-for-windows/git/issues/241
# Arguments:
# $1 - target config file
# $2 - parameter full name
# $3 - parameter value
random_file_name=$RANDOM
mv $1 $random_file_name
git config -f $random_file_name $2 $3
mv $random_file_name $1
我也在网络中找到了脚本文件。现在可以通过Git Bash直接启动:

sh "//hyprostr/dfs/groups/developers/settings/edit_config.sh" "//hyprostr/dfs/groups/developers/settings/gitconfig.txt" "http.proxy" "http://@proxy2:8080"
或者通过别名

git config --global alias.editconfig '!sh "//hyprostr/dfs/groups/developers/settings/edit_config.sh"'
我可以启动这个:

git editconfig "//hyprostr/dfs/groups/developers/settings/gitconfig.txt" "http.proxy" "http://@proxy2:8080"

这对我来说很好。

如果不能直接使用,您仍然可以:

  • 编写一个shell脚本(sh:即使在Windows上)来执行这些命令
  • 将该脚本添加为git别名
见“


实际上,如果您的脚本名为
git xxx
,您甚至不需要别名:
git xxx
可以工作(并调用
git xxx
脚本文件)。

谢谢,@VonC。我添加了UPD部分。
 git config --global alias.diffall '!sh myscript.sh'