我正在建立一个Git存储库。我知道您可以使用git config --global
添加存储库,但是有一种方法可以让用户克隆这些已知的存储库吗?
目标是,一旦repo被userz克隆,他们就可以通过别名推送到其他回购。
例如,我将git://X/mobility.git作为X添加到repo(不知何故),用户从git:// Y克隆它,但是之后可以执行git push X
而无需先执行git config
。
怎么做?
答案 0 :(得分:2)
我不相信Git支持这一点。存储库别名是本地计算机的个体,而不是克隆过程的一部分。
答案 1 :(得分:1)
您可以考虑在(在存储库的跟踪内容中)包含用于设置遥控器的脚本。最终用户可以运行此脚本来创建远程数据库。然而,该脚本不能自动运行,因为它会引入安全问题(克隆存储库应该是一个安全的操作;如果Git自动运行它刚刚下载的某个脚本/二进制文件,它将不是一个安全的操作。)
顺便说一下,使用 git remote 来管理遥控器而不是 git config 可能会更容易。
add_or_update() {
if git config remote."$1".url >/dev/null 2>&1; then
git remote set-url "$1" "$2"
else
git remote add "$1" "$2"
fi
}
add_or_update foo git@server.example.com:foo.git
add_or_update add bar git://other.example.com/dev/bar.git
如果您使用的是非标准的提取refspec,则可能需要使用 git config ,因为 git remote 尚未支持管理远程的refspec(或多个)。