--depth 1
Opcja w git clone
:
Utwórz płytki klon z historią obciętą do określonej liczby wersji. Płytkie repozytorium ma wiele ograniczeń (nie można go klonować ani pobierać z niego, ani wypychać z niego ani do niego), ale jest wystarczające, jeśli interesuje Cię tylko najnowsza historia dużego projektu z długą historią i chciałbyś wysyłaj poprawki jako łatki.
Ale z powodzeniem wykonałem płytki klon, dokonałem pewnych zmian i przesunąłem te zmiany z powrotem do źródła (nagiego klonu).
Ma to dla mnie sens - to znaczy dlaczego nie? kiedy sklonowana GŁOWA jest możliwa do zidentyfikowania w pochodzeniu, a moje zatwierdzenie pojawia się poza tym, wydaje się, że nie ma żadnego powodu. Ale instrukcja mówi inaczej.
Podoba mi się pomysł płytkiego klonowania - np. Rdzenia drupala: nie ma mowy, żebym wiedział, co się działo w Drupal 4, kiedy zacząłem od 7. - ale nie chcę strzelać sobie w stopę.
Czy bezpieczne jest płytkie klonowanie, rozwijanie w nim zobowiązań, ciągnięcie ponownie, aby nadążać za aktualizacjami pochodzącymi z pochodzenia?
źródło
--orphan
koncepcja wydaje się podobna i mam zamiar mieć luz. Nadal trochę zdenerwowany, że dokumenty nie pasują do rzeczywistości [bo kto ma powiedzieć, że dokumenty--orphan
są poprawne ?!]Odpowiedzi:
Pamiętaj, że Git 1.9 / 2.0 (Q1 2014) usunął to ograniczenie.
Zobacz commit 82fba2b , od Nguyễn Thái Ngọc Duy (
pclouds
) :Dokumentacja brzmi teraz :
Wynika to z zatwierdzeń takich jak 0d7d285 , f2c681c i c29a7b8, które obsługują klon, pakiet wysyłający / pakiet odbierający z / z płytkich klonów.
smart-http obsługuje teraz również płytkie pobieranie / klonowanie .
Wszystkie szczegóły znajdują się w „
shallow.c
: 8 kroków, aby wybrać nowe zatwierdzenia dla.git/shallow
”.Aktualizacja z czerwca 2015 r .: Git 2.5 pozwoli nawet na pobranie jednego zatwierdzenia !
(Ultimate płytka obudowa)
Aktualizacja styczeń 2016: Git 2.8 (Mach 2016) oficjalnie dokumentuje teraz praktykę uzyskania minimalnej historii.
Zobacz zatwierdzenie 99487cf , zatwierdzenie 9cfde9e (30 grudnia 2015 r.), Zatwierdzenie 9cfde9e (30 grudnia 2015 r.), Zatwierdzenie bac5874 (29 grudnia 2015 r.) I zatwierdzenie 1de2e44 (28 grudnia 2015 r.) Przez Stephen P. Smith (``) .
(Połączone przez Junio C Hamano -
gitster
- w commit 7e3e80a , 20 stycznia 2016)To jest „
Documentation/user-manual.txt
”Aktualizacja 2020:
git fetch --shallow-exclude=
zapobiegania pobieraniu całej historiigit fetch --shallow-since=
zapobiegania pobieraniu starych zatwierdzeń.Aby uzyskać więcej informacji na temat procesu aktualizacji płytkiego klonu, zobacz „ Jak zaktualizować płytki klon gita? ”.
Jak komentuje Richard Michael :
A Olle Härstedt dodaje w komentarzach :
źródło
Zobacz niektóre odpowiedzi na moje podobne pytanie dlaczego-cant-i-push-from-a-shallow-clone i link do ostatniego wątku na liście git.
Ostatecznie pomiar „głębokości” nie jest spójny między repozytoriami, ponieważ mierzą one z ich poszczególnych HEAD, a nie (a) twojej Głowy lub (b) klonowanych / zatwierdzonych przez Ciebie zatwierdzeń lub (c) czegoś innego miałeś na myśli
Najważniejsze jest, aby każdy przypadek użycia był odpowiedni (tj. Samowystarczalny), tak aby rozproszone, a zatem prawdopodobnie rozbieżne repo, nadal działałyby razem.
Wygląda na to, że
checkout --orphan
jest to właściwy etap „konfiguracji”, ale wciąż brakuje mu czystych (tj. Prostych, zrozumiałych poleceń w jednym wierszu) wskazówek dotyczących kroku „klonowania”. Wygląda raczej na to, że musisz wykonaćinit
repozytorium, założyćremote
gałąź śledzenia (chcesz tylko jedną gałąź?), A następniefetch
tę pojedynczą gałąź, która wydaje się być od dawna pełna okazji do błędów.Edycja: Aby uzyskać krok „klonowania”, zobacz tę odpowiedź
źródło