Pytanie Jak klonować repozytorium Git do określonego folderu?


Wykonanie polecenia git clone git@github.com:whatever tworzy katalog w moim bieżącym folderze o nazwie cokolwiek i upuszcza zawartość repozytorium Git do tego folderu:

/httpdocs/whatever/public

Mój problem polega na tym, że potrzebuję zawartości repozytorium Git sklonowanego do mojego bieżącego katalogu, aby pojawiły się we właściwej lokalizacji dla serwera WWW:

/httpdocs/public

Wiem, jak przenieść pliki po tym, jak sklonowałem repozytorium, ale wydaje mi się, że to przerwał Git, i chciałbym móc aktualizować tylko przez wywołanie git pull. Jak mogę to zrobić?


1718
2018-03-16 15:56


pochodzenie


W systemie Windows możesz przenosić pliki z folderu, w którym sklonujesz repozytorium [jeśli istnieje], aby w razie potrzeby było puste git clone. Po klonowaniu przenieś swoje pliki z powrotem [ctrl-z] i whoala! Jeśli bieżący folder jest pusty, po prostu użyj: git clone giturl .


Odpowiedzi:


Opcja A:

git clone git@github.com:whatever folder-name

Opcja B:

przenieś także folder .git.

Jeszcze lepiej:

Zachowaj kopię roboczą w innym miejscu i utwórz dowiązanie symboliczne.


2413
2018-03-16 16:08



Nie myślałem o twojej opcji "Lepiej jeszcze" i lubię ją, chociaż nie jestem pewna dlaczego. Jakie są tego zalety? - David Smith
Prawdopodobnie nie zapewnia to teraz żadnych korzyści, ale może zaoszczędzić ci wielu kłopotów, jeśli zdecydujesz się przenieść coś pewnego dnia. - Can Berk Güder
Dodatkowo możesz szybko przełączać się między wydaniami, korzystając z opcji "Lepiej jeszcze". Jest to szczególnie przydatne i używane w przypadku serwerów. - Halil Özgür
@MEM Myślę, że on oznacza stworzyć dowiązanie symboliczne do .git, tj. ln -s path/to/.git path/to/working/directory - Alexander
Czy ktoś może wyjaśnić korzyści z tego? Dzisiaj jestem trochę gęsty. W jaki sposób korzysta się z serwerów dowiązań symbolicznych? - triple


Przykład: myślę, że wielu ludzi zadających to pytanie jest po tym. Jeśli jesteś w katalog, do którego ma zostać załadowana zawartość repozytorium git, uruchom:

git clone git@github.com:whatever .

"." na końcu określa bieżący folder jako folder kasy.


512
2018-02-25 17:15



Jeśli ten katalog nie jest pusty, to nie działa. - Charlie Flowers
true, więc nie chcesz uruchamiać "git init" w tym folderze przed jego klonowaniem. Ale jeśli tak, to usunięcie folderu .git przed klonowaniem wystarczy. - Magne
poprawione dla pustych katalogów w mojej odpowiedzi - csomakk
nie mógł tego zrobić w Nitrous.io? nawet po opróżnieniu, oznacza to, że katalog nie jest pusty - Tejas Manohar
@TejasManohar Upewnij się, że zostały usunięte również ukryte pliki. - Britic


Przejdź do folderu. Jeśli folder jest pusty, wtedy:

git clone git@github.com:whatever .

jeszcze

git init
git remote add origin PATH/TO/REPO
git fetch
git checkout -t origin/master

176
2017-12-12 08:43



W rzeczywistości była to dla mnie najbardziej przydatna odpowiedź, gdy potrzebowałem tylko przepchnąć utworzony projekt do nowo utworzonego repozytorium. Sława! - wirher
Tylko odpowiedź, która określa, jak sprawdzić w niepustym folderze, dziękuję. - Preston Badeer
Jest to bardzo pomocne jako switch -t on nie jest wyraźnie pokazany w dokumentacji git checkout. - Chetabahana
co robi przełącznik -t? Otrzymuję komunikat o przerwaniu z listą nieśledzonych plików, które zostaną nadpisane przez kasę? Co robić w tej sytuacji? Nie chcę, aby te pliki zostały nadpisane? - Momin Zahid
-t dokumentacja z git: -t, --track Podczas tworzenia nowego oddziału skonfiguruj konfigurację "upstream". Aby uzyskać szczegółowe informacje, patrz "--track" w git-branch (1). - csomakk


Podstawowe klonowanie repozytorium Git

Sklonujesz repozytorium przy pomocy

git clone [url]

Na przykład, jeśli chcesz sklonować bibliotekę Drupal Open Framework Git z Uniwersytetu Stanforda o nazwie open_framework, możesz to zrobić tak:

$ git clone git://github.com/SU-SWS/open_framework.git

Tworzy to katalog o nazwie open_framework (w bieżącej lokalizacji lokalnego systemu plików), inicjuje w nim katalog .git, pobiera wszystkie dane dla tego repozytorium i sprawdza kopię roboczą najnowszej wersji. Jeśli przejdziesz do nowo utworzonego katalogu open_framework, zobaczysz tam pliki projektu, gotowe do pracy lub użycia.

Klonowanie repozytorium w określonym folderze lokalnym

Jeśli chcesz sklonować repozytorium do katalogu o nazwie coś innego niż open_framework, możesz określić go jako następną opcję wiersza polecenia:

$ git clone git:github.com/SU-SWS/open_framework.git mynewtheme

To polecenie robi to samo, co poprzednie, ale katalog docelowy nazywa się mynewtheme.

Git ma wiele różnych protokołów transferu, z których możesz korzystać. W poprzednim przykładzie użyto protokołu git: //, ale możesz również zobaczyć http (s): // lub user @ server: /path.git, który używa protokołu przesyłania SSH.


70
2018-04-23 21:27



spowoduje to automatyczne utworzenie folderu w bieżącym folderze i umieszczenie tam plików. Dzięki temu nie musisz się martwić o nadpisanie jakiegokolwiek innego folderu. - arn-arn
Działa naprawdę dobrze w Git w 2018 na Windows Git Bash. - Eric Hepperle - CodeSlayer2010


Kiedy przenosisz pliki do miejsca, w którym chcesz je mieć, przenosisz także .git informator? W zależności od systemu operacyjnego i konfiguracji ten katalog może być ukryty.

Zawiera repo i pliki pomocnicze, a pliki projektu są w twoim /public katalog to tylko wersje w bieżącym zatwierdzeniu check-out (domyślnie gałąź master).


12
2018-03-16 16:14





Klon:

git clone git@jittre.unfuddle.com:jittre/name.git

Sklonuj "określony oddział":

git clone -b [branch-name] git@jittre.unfuddle.com:jittre/name.git

11
2018-04-04 06:46





Jeśli chcesz sklonować do bieżącego folderu, powinieneś spróbować:

git clone https://github.com/example/example.git ./

11
2017-09-11 00:59



fatal: ścieżka docelowa "." już istnieje i nie jest pustym katalogiem. - Cleiton


Upewnij się, że usuniesz repozytorium .git, jeśli próbujesz sprawdzić, co jest w bieżącym katalogu.

rm -rf .git następnie git clone https://github.com/symfony/symfony-sandbox.git


9
2018-02-25 22:17





Aby sklonować repozytorium git do określonego folderu, możesz użyć -C <path> parametr, np.

git -C /httpdocs clone git@github.com:whatever

Chociaż nadal będzie tworzyć whatever folder na górze, aby sklonować zawartość repozytorium do bieżącego katalogu, użyj następującej składni:

git git@github.com:whatever .

Zauważ, że klonowanie do istniejącego katalogu jest tylko dozwolone, gdy katalog jest pusty.

Skoro klonujesz do folderu dostępnego publicznie, możesz rozważyć oddzielenie repozytorium Git od drzewa roboczego za pomocą --separate-git-dir=<git dir> lub wyklucz .git folder w konfiguracji serwera WWW (np .htaccess plik).


9
2018-01-08 20:04





Aby klonować Obecny katalog roboczy:

git clone https://github.com/link.git 

Aby klonować Inny katalog:

git clone https://github.com/link.git ./Folder1/Folder2

Mam nadzieję, że to pomoże :)


8
2018-03-21 16:03





Stosowanie

git clone <repository>

Sklonuj repozytorium znajdujące się w <repozytorium> na komputerze lokalnym. Oryginalne repozytorium może znajdować się w lokalnym systemie plików lub na zdalnej maszynie dostępnej przez HTTP lub SSH.

git clone <repo> <directory>

Sklonuj repozytorium znajdujące się w <repozytorium> do folderu o nazwie <katalog> na komputerze lokalnym.

Źródło: Konfigurowanie repozytorium


7
2018-06-26 11:42