如何打开git auto-fetch?

Che*_*rry 5 git tortoisegit

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

Mot*_*ine 5

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

#!/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
Run Code Online (Sandbox Code Playgroud)


Von*_*onC 3

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

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

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

请注意,目录中的本地存储库充当这些子模块的“父存储库”,并且纯粹是本地的:无需推送该存储库。它只是为了受益于git 1.8.2+(2013 年 3 月)中引入的子模块跟踪分支功能

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

origin/dev在一个命令中,您可以触发对所有git 项目存储库的最新提交的获取和签出。