Klonuj zawartość repozytorium GitHub (bez samego folderu)
232
Chciałbym git clonezawartości repozytorium, które mam na GitHub . Kiedy git clone(git @ github: me / name.git ...) dostaję folder o nazwie, name/a wewnątrz nazwy mam swoją zawartość ... Jak uzyskać JUST zawartość?
Jeśli bieżący katalog jest pusty, możesz to zrobić za pomocą:
git clone git@github:me/name.git .
(Zwróć uwagę .na końcu, aby określić bieżący katalog.) Oczywiście spowoduje to również utworzenie .gitkatalogu w bieżącym folderze, a nie tylko kodu źródłowego z projektu.
Ten opcjonalny [directory]parametr jest udokumentowany na git clonestronie podręcznika , która wskazuje, że klonowanie do istniejącego katalogu jest dozwolone tylko wtedy, gdy ten katalog jest pusty.
Niestety, to nie działa, jeśli istnieją inne niepowiązane katalogi już w tym samym katalogu. Poszukuję rozwiązania. Komunikat o błędzie to: „fatal: destination destination”. ” już istnieje ... ”
John Little
12
Katalog, do którego git klony musi być pusty
jolyonruss
1
@HumaunRashid Dodaj .omówione w odpowiedzi: git clone https://github.com/humaun21/Test .. I tak, [email protected]/name.gitjest symbolem zastępczym dla Twojego rzeczywistego adresu repozytorium git.
Aaron Campbell
1
@JohnLittle Miałem ten sam problem, okazuje się, że ukryty jest plik .DS_Store. Po prostu rm .DS_Storei możesz już iść.
Selrond
1
Jeśli pracujesz na systemie Linux, musisz upewnić się, że katalog jest pusty, w tym sprawdzić ukryte pliki i podkatalogi. Możesz to zrobić za pomocą ls -a. Powinieneś mieć tylko. i .. jako wynik. To nie zadziała inaczej
Ayo Makanjuola
156
Niestety, to nie działa, jeśli istnieją inne niepowiązane katalogi już w tym samym katalogu. Poszukuję rozwiązania. Komunikat o błędzie to: „fatal: destination destination”. ” już istnieje...".
Hej, w tym pojawia się błąd taki jak Odmowa zezwolenia <klucz publiczny>. Odległy koniec rozłączył się niespodziewanie.
Stan
Czy nie powinno być github.comtam później git remote ..., a nie tylko github?
AMN
5
Ta odpowiedź powinna była zostać zaakceptowana. działa świetnie.
vikramvi
Przeczytałem gdzie indziej tutaj, że musisz uruchomić git fetch --allprzed git pull origin master, ponieważ jeśli na repo znajdują się inne gałęzie, git pullnie dostanę ich, chyba że użyjesz go fetchnajpierw. Czy to jest poprawne?
Alex G
38
Jeśli folder nie jest pusty, działała dla mnie nieco zmodyfikowana wersja odpowiedzi @ JohnLittle:
Jaką wersję git używasz? To mi nie zadziałało. Nadal nie pozwala mi to skonfigurować, ponieważ
katalog
@ guribe94 git wersja 2.5.0
Tomáš Zemanovič
3
To jest ta sama odpowiedź, używając anonimowego protokołu https zamiast protokołu git przez ssh (wymagającego konta github z skonfigurowaną parą kluczy ssh).
Peter Cordes
15
Możesz określić katalog docelowy jako drugi parametr git clonepolecenia, dzięki czemu możesz:
git clone <remote> .
Spowoduje to sklonowanie repozytorium bezpośrednio w bieżącym katalogu lokalnym.
Odpowiedzi:
Jeśli bieżący katalog jest pusty, możesz to zrobić za pomocą:
(Zwróć uwagę
.
na końcu, aby określić bieżący katalog.) Oczywiście spowoduje to również utworzenie.git
katalogu w bieżącym folderze, a nie tylko kodu źródłowego z projektu.Ten opcjonalny
[directory]
parametr jest udokumentowany nagit clone
stronie podręcznika , która wskazuje, że klonowanie do istniejącego katalogu jest dozwolone tylko wtedy, gdy ten katalog jest pusty.źródło
.
omówione w odpowiedzi:git clone https://github.com/humaun21/Test .
. I tak,[email protected]/name.git
jest symbolem zastępczym dla Twojego rzeczywistego adresu repozytorium git.rm .DS_Store
i możesz już iść.Niestety, to nie działa, jeśli istnieją inne niepowiązane katalogi już w tym samym katalogu. Poszukuję rozwiązania. Komunikat o błędzie to: „fatal: destination destination”. ” już istnieje...".
Rozwiązaniem w tym przypadku jest:
Ten przepis działa, nawet jeśli istnieją inne katalogi w tym, w którym chcesz się zameldować.
źródło
github.com
tam późniejgit remote ...
, a nie tylkogithub
?git fetch --all
przedgit pull origin master
, ponieważ jeśli na repo znajdują się inne gałęzie,git pull
nie dostanę ich, chyba że użyjesz gofetch
najpierw. Czy to jest poprawne?Jeśli folder nie jest pusty, działała dla mnie nieco zmodyfikowana wersja odpowiedzi @ JohnLittle:
Jak zauważył @ peter-cordes, jedyną różnicą jest użycie protokołu https zamiast git, dla którego musisz mieć skonfigurowane klucze SSH .
źródło
Możesz określić katalog docelowy jako drugi parametr
git clone
polecenia, dzięki czemu możesz:Spowoduje to sklonowanie repozytorium bezpośrednio w bieżącym katalogu lokalnym.
źródło
aby sklonować repozytorium git do bieżącego i pustego folderu (nie
git init
), a jeśli nie używasz ssh:źródło
ten pracownik dla mnie
źródło