2013-08-30 19 views
18

Poniżej znajduje się polecenie, którego używam do kasowania określonego zatwierdzenia.git clone i checkout w jednym poleceniu

git clone git://repo.git/repo123 
git checkout <commitID> 

Chcę zrobić powyższe w jednym kroku - używając tylko polecenia git clone.

Powodem, dla którego chcę to zrobić, jest repo123 jest bardzo duży. Więc sprawdzanie zatwierdzenia, które chcę zaoszczędzić mi dużo czasu.

Jestem świadomy opcji --depth. Ale w tym przypadku nie ma sensu. Czy ktoś może mi powiedzieć, jak to zrobić?

+0

Jaki jest problem '--dep'? – michas

Odpowiedz

2

Wystąpiłem w tej samej sytuacji i działało dobrze z Command Git Clone z --depth. I podaj nazwę-gałęzi/commit/nazwę-znacznika na końcu polecenia za pomocą parametru -b.

składnię:

git clone --depth 1 github.com:ORG-NAME/Repo.git -b <Branch-Name/Commit-Number/TAG> 
+2

Czy to naprawdę działa dla zatwierdzenia SHA1? Próbowałem go z git 2.5.0 i chociaż akceptuje nazwy oddziałów i znaczniki, to nie działa z zatwierdzeniami. – meowsqueak

2

jest Twój problem na KASY jest do duży lub repozytorium sama? Jako git clone, dobrze, klonuje repozytorium, do którego zwykle dostajesz całe repozytorium w pełnym rozmiarze. (., Chyba że robisz płytki klon jak już sugerowane)

Jeśli to naprawdę o kasie niewłaściwego oddziału git help clone mówi:

--no-checkout, -n 
     No checkout of HEAD is performed after the clone is complete. 

Po klonowanie z -n można ręcznie sprawdzić

21
git clone u://r/l --branch x 

nadal klonuje wszystko, ale ustawia lokalny HEAD na gałąź, więc jest to wyrejestrowany.