Wykonanie polecenia git clone [email protected]:whatever
tworzy katalog w moim bieżącym folderze o nazwie whatever
i upuszcza zawartość repozytorium Git do tego folderu:
/httpdocs/whatever/public
Mój problem polega na tym, że potrzebuję sklonować zawartość repozytorium Git do mojego bieżącego katalogu, aby pojawiały się we właściwej lokalizacji dla serwera WWW:
/httpdocs/public
Wiem, jak przenosić pliki po sklonowaniu repozytorium, ale wydaje się, że to psuje Git i chciałbym móc aktualizować tylko przez wywołanie git pull
. W jaki sposób mogę to zrobić?
git
repository
git-clone
David Smith
źródło
źródło
Odpowiedzi:
Opcja A:
Ergo, do
right here
użytku:Opcja B:
Przenieś także
.git
folder. Pamiętaj, że.git
folder jest ukryty w większości graficznych eksploratorów plików, więc pamiętaj, aby pokazać ukryte pliki.Pierwsza linia przechwytuje wszystkie normalne pliki, druga linia przechwytuje pliki kropkowe. Można to również zrobić w jednej linii, włączając dotglob (tj.
shopt -s dotglob
), Ale jest to prawdopodobnie złe rozwiązanie, jeśli zadajesz pytanie, na które odpowiada ta odpowiedź.Jeszcze lepiej:
Zachowaj kopię roboczą gdzie indziej i utwórz symboliczne łącze. Lubię to:
W twoim przypadku byłoby to coś takiego:
Które można łatwo zmienić, jeśli chcesz, np .:
bez przenoszenia plików. Dodano
-fn
w przypadku, gdy ktoś kopiuje te linie (-f
jest siłą,-n
unikaj często niechcianych interakcji z już istniejącymi i nieistniejącymi linkami).Jeśli chcesz, aby to działało, skorzystaj z Opcji A, jeśli ktoś inny sprawdzi, co zrobiłeś, użyj Opcji C.
źródło
ln -s path/to/.git path/to/working/directory
Myślę, że przykładem jest wiele osób zadających to pytanie. Jeśli znajdujesz się w katalogu, do którego chcesz zrzucić zawartość repozytorium git, uruchom:
„.” na końcu określa bieżący folder jako folder kasy.
źródło
ls -a
pokaże wszystkie pliki, w tym ukryte.Przejdź do folderu. Jeśli folder jest pusty, to:
jeszcze
źródło
switch -t
nie jest wyraźnie pokazane w dokumentacji kasy git .Podstawowe klonowanie repozytorium Git
Klonujesz repozytorium za pomocą
Na przykład, jeśli chcesz sklonować bibliotekę Open Framework Git Stanup University Drupal o nazwie open_framework, możesz to zrobić w następujący sposób:
Tworzy katalog o nazwie open_framework (w bieżącej lokalizacji lokalnego systemu plików), inicjuje w nim katalog .git, ściąga wszystkie dane dla tego repozytorium i sprawdza kopię roboczą najnowszej wersji. Jeśli przejdziesz do nowo utworzonego katalogu open_framework, zobaczysz w nim pliki projektu, gotowe do pracy lub użycia.
Klonowanie repozytorium w określonym folderze lokalnym
Jeśli chcesz sklonować repozytorium do katalogu o nazwie innej niż open_framework, możesz to określić jako następną opcję wiersza polecenia:
To polecenie robi to samo co poprzednie, ale katalog docelowy nazywa się mynewtheme.
Git ma wiele różnych protokołów przesyłania, których możesz użyć. Poprzedni przykład używa protokołu git: //, ale możesz także zobaczyć http (s): // lub użytkownik @ serwer: /path.git, który używa protokołu przesyłania SSH.
źródło
Aby sklonować repozytorium git do określonego folderu, możesz użyć
-C <path>
parametru, npChociaż nadal utworzy na nim
whatever
folder, więc aby sklonować zawartość repozytorium w bieżącym katalogu, użyj następującej składni:Pamiętaj, że klonowanie do istniejącego katalogu jest dozwolone tylko wtedy, gdy katalog jest pusty .
Ponieważ klonujesz w folderze, który jest dostępny publicznie, rozważ oddzielenie repozytorium Git od drzewa roboczego, używając
--separate-git-dir=<git dir>
lub wykluczając.git
folder w konfiguracji serwera WWW (np. W.htaccess
pliku).źródło
Aby sklonować do Present Directory Directory :
Aby sklonować do innego katalogu :
Mam nadzieję, że to pomoże :)
źródło
./
na początku ścieżki do folderuKiedy przenosisz pliki tam, gdzie chcesz, przenosisz także
.git
katalog? W zależności od systemu operacyjnego i konfiguracji ten katalog może być ukryty.Zawiera repozytorium i pliki pomocnicze, podczas gdy pliki projektu, które znajdują się w twoim
/public
katalogu, są tylko wersjami aktualnie zatwierdzonego pobrania (domyślnie gałąź master).źródło
Klon:
Sklonuj „konkretną gałąź”:
źródło
Jeśli chcesz sklonować w bieżącym folderze, spróbuj tego:
źródło
Stosowanie
Sklonuj repozytorium znajdujące się w <repository> na komputerze lokalnym. Oryginalne repozytorium może znajdować się w lokalnym systemie plików lub na zdalnym komputerze dostępnym przez HTTP lub SSH.
Sklonuj repozytorium znajdujące się w <repository> w folderze o nazwie <directory> na komputerze lokalnym.
Źródło: konfigurowanie repozytorium
źródło
Pamiętaj, aby usunąć repozytorium .git, jeśli próbujesz sprawdzić zawartość bieżącego katalogu.
rm -rf .git
następniegit clone https://github.com/symfony/symfony-sandbox.git
źródło
Oto jak bym to zrobił, ale stworzyłem alias, aby to dla mnie zrobić.
Prawdopodobnie jest to bardziej elegancki sposób, ale uważam, że jest to dla mnie najłatwiejsze.
Oto alias, który utworzyłem, aby przyspieszyć. Zrobiłem to dla zsh, ale powinno działać dobrze dla bash lub jakiejkolwiek innej powłoki, takiej jak fish, xyzsh, fizsh i tak dalej.
Edit
~/.zshrc
,/.bashrc
itp ze swoim ulubionym edytorze (kopalnia jest leafpad, więc piszę$ leafpad ~/.zshrc
).Osobiście wolę jednak tworzyć wtyczki zsh, aby śledzić wszystkie moje aliasy. Możesz utworzyć osobistą wtyczkę dla oh-my-zsh, uruchamiając następujące polecenia:
Następnie dodaj te wiersze do nowo utworzonego pustego pliku alises.plugin:
(Odtąd zamień swoje nazwisko na moje.)
Następnie, aby uruchomić aliasy, muszą one (wraz z zsh) zostać pozyskane (lub jakkolwiek to się nazywa). Aby to zrobić, w niestandardowym dokumencie wtyczki dodaj to:
Zapisz wtyczkę oh-my-zsh i uruchom
allsource
. Jeśli to nie działa, po prostu uruchomsource $ZSH/oh-my-zsh.sh; source /home/ev/.oh-my-zsh/plugins/ev-aliases/ev-aliases.plugin.zsh
. Spowoduje to załadowanie źródła wtyczki, z którego będziesz mógł korzystaćallsource
od teraz.Jestem w trakcie tworzenia repozytorium Git ze wszystkimi moimi aliasami. Sprawdź je tutaj: pliki kropek Ev . Zachęcamy do rozwidlenia i ulepszenia ich w zależności od potrzeb.
źródło
Jeśli używasz
ssh
dogit cloning
można użyć następującego polecenia.git -C path clone [email protected]:path_to_repo.git
np .:
git -C /home/ubuntu/ clone [email protected]:kennethreitz/requests.git
ściągnąłby repozytorium git narequests
twoją/home/ubuntu/
ścieżkę.źródło
Z jakiegoś powodu ta składnia nie wyróżnia się:
git clone repo-url [folder]
Tutaj folder jest opcjonalną ścieżką do folderu lokalnego (który będzie lokalnym repozytorium).
Git
clone
będzie równieżpull
kodować ze zdalnego repozytorium do lokalnego repozytorium. W rzeczywistości jest to prawda:źródło
Chociaż wszystkie powyższe odpowiedzi są dobre, chciałbym zaproponować nową metodę zamiast używania metody dowiązania symbolicznego w publicznym katalogu html, jak zaproponowano NAJLEPSZE w zaakceptowanej odpowiedzi. Musisz mieć dostęp do konfiguracji hosta wirtualnego serwera.
Chodzi o skonfigurowanie wirtualnego hosta serwera WWW bezpośrednio wskazującego katalog repozytorium. W Apache możesz to zrobić w następujący sposób:
Oto przykład wirtualnego pliku hosta:
źródło
Możesz użyć następującego polecenia git, aby sklonować niestandardową nazwę katalogu
Uwaga: Nie musisz tworzyć katalogu klienta, ponieważ zostanie on utworzony automatycznie
źródło
źródło
Odnośnie tej linii z oryginalnego postu:
Jestem w stanie to zrobić i do tej pory nie widzę żadnych problemów z operacjami dodawania, zatwierdzania, wypychania i wyciągania.
Podejście to podano powyżej, ale nie zostało ono podzielone na etapy. Oto kroki, które działają dla mnie:
Istniejący folder, do którego właśnie skopiowałeś pliki, jest teraz gotowy do interakcji z git.
źródło