2014-09-07 17 views
5

Mam kilka projektów git, które chcę pobrać codziennie (np. Rano) i kasę do ostatniego zatwierdzenia (jeśli nie ma żadnych zmian lokalnych oczywiście) do oddziału "origin/dev" (np. Może nie być oddział główny). Jak to zrobić dla wszystkich projektów w katalogu?Jak włączyć automatyczne pobieranie git?

+7

Nie ma czegoś takiego jak autofetch. Możesz jednak rozważyć napisanie zadania crona – thirtythreeforty

Odpowiedz

3

Jak to zrobić dla wszystkich projektów w katalogu?

Jednym ze sposobów byłoby eksperymentu (w osobnym katalogu lokalnego):

  • stworzenia lokalnego repo w tym katalogu
  • dodać te wszystkie projekty Git repo jako submodules (git dodać submodule -b dev url/git/repo/for/a/project): będą one ustawione tak, aby codziennie śledzić gałąź dev (
  • (np. przy pomocy zadania cron), czy to git submodule update --recursive --remote: pobierają i pobierają najnowsze od źródła/dev dla każdego submodułu.

Należy zauważyć, że lokalne repo w ustawie katalogu jako „repo dominującej” Dla tych submodules i jest czysto lokalny: nie ma potrzeby naciskać tego repo. To właśnie tam można skorzystać z submodule tracking branch feature wprowadzonego w git 1.8.2+ (marzec 2013).

Twoje repozytorium projektu git może całkowicie zignorować fakt, że są one submodułami dla repozytorium katalogu nadrzędnego.

W jednym poleceniu wyzwalasz pobranie i pobranie najnowszych zatwierdzeń z origin/dev dla wszystkich repozytoriów projektów git.

2

Jeśli używasz * nix/Mac można użyć następującego skryptu bash i utworzyć zadanie cron/launchdaemon zadanie:

#!/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 
Powiązane problemy