2011-07-23 17 views
123

Kontynuacja this Tak więc: jeśli mam płytkiego klona, ​​jak pobrać wszystkie starsze zatwierdzenia, aby uczynić go pełnym klonem?Konwersja płytkiego klonu do pełnego klonu

+3

Czy uważają Państwo, aby zaznaczyć odpowiedź @ SDRAM jest? To jest właściwe. –

Odpowiedz

47

Można uruchomić git fetch --depth=1000000 (zakładając, że repozytorium ma mniej niż milion zatwierdzeń).

+120

Teraz, gdy istnieje 'git fetch --unshallow' (jak w odpowiedzi @ sdrama), ta odpowiedź nie jest już najlepsza. –

+1

@ Odpowiedź sdram nie działa dla mnie (wersja git 2.1.1), ale ta odpowiedź brzmi. – kay

+1

Żadna odpowiedź nie zadziałała. Obu komendom udało się pobrać wszystkie brakujące zatwierdzenia, ale kiedy próbuję przesłać nowe zatwierdzenia, pojawia się błąd dotyczący serwera, który nie znał "płytkich" informacji. – Tyguy7

409

Poniższa komenda (git wersja 1.8.3) przekonwertuje płytkie klon regularnej jednym

git fetch --unshallow 

Następnie, aby uzyskać dostęp do wszystkich oddziałów na pochodzenie (dzięki @Peter w komentarzach)

git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*" 
git fetch origin 
+27

Nie powoduje to cofnięcia efektu bocznego pojedynczej gałęzi. Aby to zrobić, edytuj plik .git/config i zmień wartość parametru fetch = + refs/heads/BRANCHNAME: refs/remote/origin/BRANCHNAME, aby pobrać = + refs/heads/*: refs/remote/origin/* –

+2

To nie tworzy lokalne oddziały śledzące zdalne gałęzie, więc nadal potrzebujesz do sprawdzenia -b BRNAME origin/BRNAME, aby uzyskać tę konfigurację. –

+19

Zobacz także http://stackoverflow.com/questions/17714159/how-do-i-undo-a-single-branch-clone: ​​'git config remote.origin.fetch" + refs/heads/*: refs/remote/origin/* ";' 'git fetch origin' z odpowiedzi powinno być takie samo jak edycja .git/config ręcznie –

5

Potrzebowałem pogłębić repo tylko do określonego zatwierdzenia.

Po przeczytaniu man git-fetch, dowiedziałem się, że nie można określić, commit, ale można podać datę:

git fetch --shallow-since=15/11/2012 

Dla tych, którzy potrzebują przyrostową pogłębiania, inny man Cytat:

--deepen=<depth> 

Podobna do --depth, z wyjątkiem tego, że określa liczbę , która jest zatwierdzana z bieżącej płytkiej granicy zamiast z końcówki e z historii zdalnego oddziału.

0

Można spróbować to:

git fetch --update-shallow 
Powiązane problemy