git clone bez folderu projektu

85

Udzieliłem dostępu do serwera i chcę sklonować repozytorium git do mojego folderu głównego. Ale kiedy wykonuję klonowanie git, utworzy mi folder z nazwą projektu, a mój folder projektu jest moim katalogiem głównym. Nie mam dostępu do folderu nadrzędnego, w którym znajduje się mój katalog główny

/var/www/sites/mysite/

a kiedy zrobię klonowanie, struktura folderów będzie

/var/www/sites/mysite/mysite
dzona
źródło
2
pamiętaj, aby nie dostarczać .git w wybranym serwerze apache / webserver.
mnagel
1
Czy to odpowiada na twoje pytanie? Sklonuj zawartość repozytorium GitHub (bez samego folderu)
Vishrant

Odpowiedzi:

193

git cloneakceptuje ostatni argument, czyli katalog docelowy, jest to domyślnie nazwa projektu, ale można ją zmienić. W twoim przypadku prawdopodobnie chcesz po prostu .:

$ git clone origin-url .

Ale pamiętaj, że od man git-clone:

Klonowanie do istniejącego katalogu jest dozwolone tylko wtedy, gdy katalog jest pusty.

rodrigo
źródło
4
git clone @rodrigo ./heaven
a_m_dev
A co powiesz na klonowanie dwóch poziomów w głąb? Mam dwa foldery na górze pom.xml?
Bionix1441
1
@ Bionix1441: Nie wiem o strukturze twojego katalogu, ale jeśli jesteś o dwa poziomy niższy, po prostu pisząc git clone aaa/bbb. Jeśli chcesz przejść dwa poziomy wyżej, możesz spróbować, git clone ..ale to nie zadziała, ponieważ Twoja dyrekcja rodziców nigdy nie jest pusta.
rodrigo
Struktura jest następująca folder1\folder2\pom.xml, potrzebuję tylko pom.xmlfolderów i na tym samym poziomie copom.xml
Bionix1441
34

Możesz także po prostu skonfigurować nowe repozytorium, a następnie zdalne śledzenie i gałąź:

git init .
git remote add origin [email protected]:user/repo.git
git fetch origin
git checkout master
richo
źródło
To nadal nie zadziała, jeśli repozytorium ma folder nadrzędny
Hittz
Musiałem również ustawić pasującą gałąź nadrzędną: git branch --set-upstream-to=origin/master master Następnie musiałem wypchnąć lokalne zmiany do gałęzi zdalnej: git push --force Zastąpiło to starą gałąź zdalną moją lokalną aktualną kopią.
Daniel ZA
7

Działa to również dobrze w systemie Windows.

git init
git remote add origin [email protected]:user/repo.git
git pull origin master
hobbydev
źródło
5

Pamiętaj, że repozytorium git to po prostu struktura katalogów, w której je przechowujesz. Oznacza to, że kiedy klonujesz repozytorium do niewłaściwego katalogu, możesz po prostu przenieść zawartość katalogu w dowolne inne miejsce, a dane repozytorium pozostają nienaruszone. Na przykład możesz uruchomić następujące polecenia z wiersza poleceń:

$ mv /var/www/sites/mysite/mysite/* /var/www/sites/mysite`
$ mv /var/www/sites/mysite/mysite/.* /var/www/sits/mysite`
$ rmdir /var/www/sites/mysite/mysite
Code-Apprentice
źródło
4

Możesz sklonować swój projekt do podfolderu i przenieść wszystkie pliki, w tym .gitfolder, do folderu nadrzędnego (Twojego katalogu głównego).

Siergiej K.
źródło
3
dlaczego nie można tego zrobić łatwiej, na przykład git clone [email protected]: cokolwiek. \
dzona.
może, zobacz odpowiedź rodrigo. ale wiesz, że repozytorium git to po prostu zbiór plików, które można dowolnie przenosić, ta odpowiedź jest łatwa do zapamiętania.
mnagel
git clone git @ github: me / name.git.
Salman Mahmud