如何打开git auto-fetch?

时间:2014-09-07 03:38:28

标签: git tortoisegit

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

4 个答案:

答案 0 :(得分:3)

  

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

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

  • 在该目录中创建本地仓库
  • 将所有这些Git repos项目添加为子模块(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月)中引入的 submodule tracking branch feature

你的git项目repos可以完全忽略它们是父目录repo的子模块。

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

答案 1 :(得分: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

答案 2 :(得分:0)

参加聚会可能会比较晚,但是I wrote a tool for Windows and macOS会自动获取多个存储库(和其他功能):

RepoZ

答案 3 :(得分:0)

如果您使用的是zsh,则可以使用https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/git-auto-fetch

在git初始化目录中工作时,自动从所有远程获取所有更改。

只需添加到plugins

plugins=(... git-auto-fetch)