Git:我可以在存储库中存储已知的存储库吗?

时间:2010-05-22 01:30:31

标签: git alias

我正在建立一个Git存储库。我知道您可以使用git config --global添加存储库,但是有一种方法可以让用户克隆这些已知的存储库吗?

目标是,一旦repo被userz克隆,他们就可以通过别名推送到其他回购。

例如,我将git://X/mobility.git作为X添加到repo(不知何故),用户从git:// Y克隆它,但是之后可以执行git push X而无需先执行git config

怎么做?

2 个答案:

答案 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(或多个)。