Git for Windows有a problem写入位于网络上的配置文件。
以下内容可用作错误的解决方法:
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别名调用这组命令...注意 - 第一个和最后一个命令是外部的,而第二个命令是内部命令。
我阅读了关于git help config
的{{1}}部分。阅读后我认为不可能通过别名编写这三个命令。我对吗?我希望我错了,仍然是可能的。如果我弄错了,那该怎么办呢?
UPD(decission)
感谢 @VonC 的回答。我写了这样的剧本:
alias.*
我也在网络中找到的脚本文件。现在它可以直接通过Git Bash启动:
# 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
或通过别名
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"'
它适用于我。
答案 0 :(得分:2)
如果无法直接进行,您仍然可以:
请参阅“How to embed bash script directly inside a git alias”
git config --global alias.diffall '!sh myscript.sh'
实际上,如果您的脚本被调用git-xxx
,您甚至不需要别名:git xxx
将起作用(并调用git-xxx
脚本文件)。