Jak sklonować Git do bieżącego katalogu

Robię:

git clone ssh://[email protected]/home/user/private/repos/project_hub.git ./

I ' m getting:

Fatal: destination path"."już istnieje i nie jest pustym katalog.

Znam ścieżkę . już istnieje. I mogę zapewnić, że katalog jest pusty. (Ja w środku i nic nie widzę!)

Czego mi tu brakuje, aby sklonować ten projekt do bieżącego katalogu ?

 536
Author: MEM, 2012-03-25

22 answers

Po prostu umieść kropkę obok

git clone [email protected]:user/my-project.git .

From git help clone:

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

Więc upewnij się, że katalog jest pusty( sprawdź za pomocą ls -a), w przeciwnym razie polecenie nie powiedzie się.

 571
Author: Roshan Pal,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-05-31 21:08:24

Poniżej prawdopodobnie nie jest w pełni odpowiednikiem klonu we wszystkich przypadkach, ale zrobił sztuczkę dla mnie:

git init .
git remote add -t \* -f origin <repository-url>
git checkout master

W moim przypadku tworzy to plik .git/config, który jest odpowiednikiem tego, który otrzymuję podczas klonowania.

 368
Author: Andre Holzner,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-09 12:04:59

@Andrzej odpowiedział wyraźnie Tutaj . Ale tak proste, jak to działa, nawet jeśli katalog nie jest pusty:

git init .
git remote add origin <repository-url>
git pull origin master
 228
Author: ambes,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:34:37

Do

git clone https://[email protected]/user/projectname.git .

Katalog musi być pusty

 63
Author: NSukonny,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-24 15:12:00

Aby mieć pewność, że można sklonować repo, przejdź do dowolnego katalogu tymczasowego i Sklonuj tam projekt:

git clone ssh://[email protected]/home/user/private/repos/project_hub.git

To sklonuje twoje rzeczy do katalogu project_hub.

Po zakończeniu klonowania możesz przenieść ten katalog w dowolne miejsce:

mv project_hub /path/to/new/location
To jest bezpieczne i nie wymaga żadnych magicznych rzeczy.
 61
Author: eckes,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-03-26 08:28:30
git clone your-repo tmp && mv tmp/.git . && rm -rf tmp && git reset --hard
 56
Author: return1.at,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-03-21 14:02:56

Hmm... określenie ścieżki prądu bezwzględnego za pomocą $(pwd) zadziałało.

git clone https://github.com/me/myproject.git $(pwd)

Wersja Git: 2.21.0

 28
Author: Nick Grealy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-03-31 14:30:11

Jeśli bieżący katalog jest pusty, to zadziała:

git clone <repository> foo; mv foo/* foo/.git* .; rmdir foo
 13
Author: GoZoner,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-04-24 01:50:00

Rozwiązanie: W tym przypadku rozwiązaniem było użycie dot, więc: rm -rf .* && git clone ssh://[email protected]/home/user/private/repos/project_hub.git .

rm -rf .* && może zostać pominięty, jeśli jesteśmy absolutnie pewni, że katalog jest pusty.

Napisy idą do: @ James McLaughlin w komentarzach poniżej.

 12
Author: MEM,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-04-12 07:05:20

Oprócz odpowiedzi @StephaneDelcroix, przed użyciem:

git clone [email protected]/my-project.git .

Upewnij się, że bieżący katalog jest pusty, używając

ls -a
 10
Author: Jakehao,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-20 12:29:57

Miałem taką samą potrzebę. W moim przypadku miałem standardowy folder WWW, który jest tworzony przez instalację serwera www. Dla celów tej ilustracji powiedzmy, że jest to

/server/webroot

I webroot zawiera inne standardowe pliki i foldery. Mój repo ma tylko pliki specyficzne dla witryny (html, javascript, CFML, itp.)

Wszystko co musiałem zrobić to:

cd /server/webroot

git init

git pull [url to my repo.git]

Musisz być ostrożny, aby zrobić Git init w folderze docelowym, ponieważ jeśli nie zrobisz jednej z dwóch rzeczy happen:

  1. git pull po prostu zawiedzie z Komunikatem o braku pliku git, w moim przypadku:

Fatal: Nie repozytorium Gita (ani żadnego z katalogów nadrzędnych): .git

  1. Jeśli jest a .plik git gdzieś w ścieżce nadrzędnej do twojego folderu zostanie utworzony wyciągnięty repo w tym rodzicu, który zawiera .plik git. To mi się przytrafiło i byłam tym zaskoczona; -)

To nie przeszkadzało żadnemu z" standardowych " plików Mam w moim folderze webroot, ale musiałem dodać je do .plik gitignore, aby zapobiec przypadkowemu dodaniu ich do kolejnych commitów.

Wygląda to na łatwy sposób "klonowania" do niepustego katalogu. Jeśli nie chcesz .git i .pliki gitignore utworzone przez pull, po prostu usuń je po pull.

 9
Author: igeocacher,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-04 20:09:27

Poprawa na @ GoZoner ' s odpowiedź:

git clone <repository> foo; shopt -s dotglob nullglob; mv foo/* .; rmdir foo

Polecenie shopt jest pobrane z to więc odpowiedz i zmienia zachowanie polecenia 'mv' w Bash, aby uwzględnić pliki dotfiles, które musisz uwzględnić .katalog git i inne ukryte pliki.

Zauważ również, że jest to gwarantowane tylko wtedy, gdy bieżący katalog (.) jest puste, ale będzie działać tak długo, jak żaden z plików w sklonowanym repo nie ma takiej samej nazwy jak pliki w bieżącym katalogu. Jeśli nie dbaj o to, co znajduje się w bieżącym katalogu, możesz dodać opcję-f (force) do polecenia' mv'.

 6
Author: phatblat,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-04-13 12:36:28

Dalsza poprawa na @phatblat ' S odpowiedz :

git clone --no-checkout <repository> tmp \
  && mv tmp/.git . \
  && rmdir tmp \
  && git checkout master

Jako jeden liner:

git clone --no-checkout <repository> tmp && mv tmp/.git . && rmdir tmp && git checkout master

 6
Author: 166_MMX,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-02-27 22:20:49

Użyłem tego do sklonowania repo do bieżącego katalogu, który nie był pusty. Nie koniecznie czyste życie, ale było w jednorazowym pojemniku docker: {]}

git clone https://github.com/myself/myRepo.git temp
cp -r temp/* .
rm -rf temp

Tutaj użyłem cp -r zamiast mv, ponieważ kopiuje ukryte pliki i katalogi. Następnie pozbądź się katalogu tymczasowego za pomocą rm -rf

 5
Author: RexBarker,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-06-30 15:05:10
shopt -s dotglob
git clone ssh://[email protected]/home/user/private/repos/project_hub.git tmp && mv tmp/* . && rm -rf tmp
 2
Author: John Josef,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-15 16:50:52

Użyj .(kropka) na końcu polecenia jak poniżej

Git clone URL .

 1
Author: Upendra,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-22 08:44:53
git clone ssh://[email protected]/home/user/private/repos/project_hub.git $(pwd)
 1
Author: Catalin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-05-13 19:43:49

Oto co znalazłem:

Widzę to:

fatal: destination path 'CouchPotatoServer' already exists and is not an empty directory.

Wśród moich poszukiwań natknąłem się na:

Https://couchpota.to/forum/viewtopic.php?t=3943

Poszukaj wpisu Clinton.Hall... Jeśli spróbujesz tego (tak jak ja), prawdopodobnie otrzymasz odpowiedź access denied, była moja pierwsza wskazówka, więc początkowy błąd (dla mnie), faktycznie wymykał się niewłaściwemu problemowi root.

Rozwiązanie dla tego w windows: upewnij się, że uruchomisz cmd lub git elevated, a następnie run:

git clone https://github.com/RuudBurger/CouchPotatoServer.git
[[7]] powyższe było moim problemem i po prostu podnoszenie działało dla mnie.
 0
Author: ynotjs,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-11 14:57:40

Usuwanie za pomocą

Rm-rf .*

Może wpakować cię w kłopoty lub więcej błędów.

Jeśli masz / path / to / folder i chcesz usunąć wszystko w środku, ale nie ten folder, po prostu uruchom:

Rm-rf / ścieżka / do / folderu/ *

 -1
Author: Sid,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-13 14:19:23

Więc naprawiłem ten sam błąd usuwając Ukryte .folder git w moim katalogu głównym, a następnie dodanie kropki do repo ' git clone .'w moim folderze root/dist. Jest to w kontekście projektu vue-cli webpack. Więc to, co wszyscy mówią jest słuszne, zwykle oznacza, że masz git tracking albo w folderze, do którego próbujesz sklonować, albo w folderze nadrzędnym lub głównym danego folderu!

 -1
Author: Akin Hwan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-20 00:16:37

Rozwiązaniem dla Windows jest sklonowanie repozytorium do innego folderu, a następnie skopiowanie i wklejenie do oryginalnej lokalizacji lub po prostu skopiowanie niewidocznego folderu .git.

 -1
Author: croppio.com,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-02-24 11:22:32

Warto utworzyć nowy plik przez mkdir filename, a następnie uruchomić komendę git clone xxxxx, działa na moim komputerze

 -2
Author: crazier-qi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-15 10:14:43