如何打开git auto-fetch?

问题描述 投票:5回答:3

我有几个我想每天获取的git项目(例如早上)和结账到最后一次提交(如果当然没有本地更改)到分支“origin / dev”(例如它可能不是主人)科)。那么如何为目录中的所有项目执行此操作?

git tortoisegit
3个回答
3
投票

如何为目录中的所有项目执行此操作?

一种方法是(在单独的本地目录中进行实验):

  • 在该目录中创建一个本地仓库
  • 将所有这些Git repos项目添加为子模块(git add submodule -b dev url / git / repo / for / a / project):它们将被设置为跟踪dev分支
  • 每天(例如一个cron作业),做一个git submodule update --recursive --remote:它将从每个子模块的origin / dev获取和检出最新的。

请注意,目录中的本地repo充当这些子模块的“父repo”,并且纯粹是本地的:无需推送该repo。它正好受益于git 1.8.2+中引入的submodule tracking branch feature(2013年3月)。

您的git项目repos可以完全忽略它们是父目录repo的子模块这一事实。

在一个命令中,您将触发origin/dev上所有git项目回购的最新提交的获取+结帐。


3
投票

如果您使用的是* nix / mac,则可以使用以下bash脚本并创建cron作业/ launchdaemon任务:

#!/usr/bin/env bash
ls -d */ | while read folder; do
    if [ -d "$folder/.git" ]; then
        cd "$folder"
        git pull # CHANGE THIS TO YOUR NEEDS
        cd ..
    fi
done

0
投票

派对可能会迟到,但I wrote a tool for Windows and macOS会自动获取多个存储库(以及其他功能):

RepoZ

© www.soinside.com 2019 - 2024. All rights reserved.