我们的团队最近一直在增加新成员。每次我们添加一个新人时,他们都会获得自己的远程 Git 存储库。每个项目的 .git/config 中的遥控器数量增加一。团队中的每个人都需要为每个项目添加新的遥控器。新人在最初克隆项目时必须为每个现有团队成员添加遥控器。
这很烦人。有没有办法自动将所有适当的遥控器添加到所有项目中以消除这种麻烦?
我们的团队最近一直在增加新成员。每次我们添加一个新人时,他们都会获得自己的远程 Git 存储库。每个项目的 .git/config 中的遥控器数量增加一。团队中的每个人都需要为每个项目添加新的遥控器。新人在最初克隆项目时必须为每个现有团队成员添加遥控器。
这很烦人。有没有办法自动将所有适当的遥控器添加到所有项目中以消除这种麻烦?
只需编写一个 shell 脚本来确保所有远程都存在,然后通过将其签入存储库或使其在带外可用来与团队共享。
如果你愿意,你可以重用我已经为管理 git remotes 编写的一些 shell 函数,例如:
# clone the above repo to some $MR_CONFIG_REPO first
source $MR_CONFIG_REPO/sh.d/git-remotes
for developer in alice bob charles dave; do
git_add_remote $developer https://github.com/$developer/$PROJECT_NAME.git
done
# or if the repo URLs don't follow a pattern
git_add_remotes "
alice https://github.com/alice/$PROJECT_NAME.git
bob https://src.bob.com/git/$PROJECT_NAME.git
charles file:///mnt/nfs/git/$PROJECT_NAME.git
dave git@github.com:dave/${PROJECT_NAME}-2.git
"
如果你想变得更复杂,你可以从我的mr
配置库中窃取更多的想法,特别是这个文件。 mr
是一个非常方便的存储库批量管理工具,我已经广泛使用它很长时间了。