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

2
pamiętaj, aby nie dostarczać .git w wybranym serwerze apache / webserver.
mnagel

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.


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 git@github.com:user/repo.git
git fetch origin
git checkout master

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 git@github.com:user/repo.git
git pull origin master

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

4

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


3
dlaczego nie można tego zrobić łatwiej, na przykład git clone git@github.com: 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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.