/ / Git checkout z określonego katalogu - git, git-checkout

Git checkout z określonego katalogu - git, git-checkout

Kiedy tworzymy naszą aplikację, pobieramy kod znajpierw katalog repozytorium CVS, a następnie go zbuduj. Czy w Gicie mamy coś podobnego do zrobienia tego. Chcę tylko wyewidencjonować z konkretnej diety repozytorium Git, a następnie skompilować nasz kod. Żadnego lokalnego utrzymania repozytorium, nic. Po prostu wykup kod.

Wiem, że istnieje coś, co nazywa się „Rzadkie zakupy”. Czy mamy coś prostszego?

Mój problem polega na tym, że ten skrypt kompilacji można uruchomić na dowolnym serwerze. Więc jeśli wybiorę rzadki checkout, będę musiał wejść na każdy serwer, skonfigurować Gita i powiedzieć mu, jak zrobić rzadki checkout.

Odpowiedzi:

5 dla odpowiedzi № 1

Aby odpowiedzieć litteraly na swoje pytanie, musisz wykonać następujące czynności:

Pobierz dane repozytorium w katalogu tymczasowym

mkdir path/to/temporary && cd path/to/temporary
git clone <repo-url> --depth 1 --bare

I sprawdź żądany katalog w innym

git --work-tree=/path/to/checkout checkout HEAD -- sub/directory

Następnie możesz usunąć tymczasowy i pracować z kasą.

Oczywiście można to łatwo umieścić w skrypcie!


2 dla odpowiedzi nr 2

Filozofia Git jest daleko od CVS, więc jasugeruję, abyś postąpił inaczej tutaj. Twoje repozytoria Git będą dystrybuowane, każdy programista lub serwer będzie miał jego kopię, z których jeden będzie autorytatywny (origin zdalne w terminologii Git).

Jeśli chcesz rozpocząć kompilację od świeżego pobrania, najpierw powiedz Git, aby pobrać najnowsze zmiany origin, to się nazywa pobieranie.

git fetch origin

Następnie, aby mieć świeże pobranie, chcesz, aby twój system plików był dokładnie taki sam jak wersja na serwerze, bez żadnego innego pliku.

git checkout --force origin/master
git clean -d --force

Zaletą jest to, że praca w siecijest bardzo wydajny, pobierasz tylko najnowsze różnice z serwera, z którym chcesz się zsynchronizować, i nadal masz pewność, że budujesz z właściwych plików, bez ich zmiany.

Będziesz chciał sprawdzić także narzędzia do ciągłej integracji, takie jak Jenkins, które są całkiem dobrze zintegrowane z repozytoriami Git.


1 dla odpowiedzi nr 3

Możesz spróbować sklonować repozytorium przy użyciu rozszerzenia --depth opcja, aby sprawdzić, czy odpowiada Twoim potrzebom. Opcja --depth nie sklonuje pełnej historii repozytorium, a zatem będzie szybsza.

> git clone http://myrepo.git --depth 1

Możesz dodatkowo ograniczyć realizację transakcji, określając nazwę oddziału:

> git clone http://myrepo.git -b master --depth 1

Jeśli chcesz pobrać tylko podkatalog repozytorium git, AFAIK, nie jest to obecnie możliwe.