我在github上有一个远程仓库和另一个远程仓库用于备份。由于仓库非常大,我不想每次都使用git push --mirror(它超过20 GB),并且希望每次只同步最新的更改。
我想写一个脚本,它的作用是这样的:
for each branch in githubRemote/branches do:
if branch != otherRemote/branch:
checkout githubRemote/branch
push branch to otherRemote
3条答案
按热度按时间ufj5ltwl1#
您可以在powershell脚本中查看以下示例:
上面的脚本将克隆远程github仓库并 checkout 所有的分支,然后从远程github仓库提取最新的代码。如果对远程github分支进行了更改,则只有这些分支会被推送到其他远程tfs仓库。
如果您使用tfs帐户username:password作为凭据。您的帐户需要具有向远程tfs存储库提供内容的权限。如果您没有该权限,请要求tfs项目管理员授予您该权限。
您也可以要求您的tfs项目管理员给予具有程式码读取/写入范围的个人存取权杖(PAT)。然后您就可以使用PAT做为认证。
gc0ot86w2#
转到您的备份存储库并执行
git fetch origin
或git pull origin
。编辑:
我不太了解TFS,但也许,你可以在那里安排一个任务?
如果没有,也许它有一个API将触发一个
git pull
或git fetch
,所以你可以写一个脚本调用正确的端点来做这件事,并安排它在其他一些机器上。anhgbhbe3#
根据@Levi Lu-MSFT的回答,我编写了以下脚本: