Jestem kompletnym Noobem, jeśli chodzi o GIT. Właśnie stawiam pierwsze kroki w ciągu ostatnich kilku dni. Zainstalowałem repo na moim laptopie, ściągnąłem Trunk z projektu SVN (miałem problemy z gałęziami, nie działałem), ale wszystko wydaje się w porządku.
Chcę teraz móc ciągnąć lub pchać z laptopa na główny pulpit. Powodem jest to, że laptop jest przydatny w pociągu, ponieważ spędzam 2 godziny dziennie w podróży i mogę wykonać dobrą robotę. Ale moja główna maszyna w domu jest świetna do programowania. Więc chcę móc pchać / ciągnąć z laptopa na komputer główny, kiedy wrócę do domu. Pomyślałem, że najprostszym sposobem jest udostępnienie folderu kodu w sieci LAN i wykonanie:
git clone file://192.168.10.51/code
niestety nie wydaje mi się to działać:
więc otwieram cmd git bash i wpisuję powyższe polecenie, jestem w C: \ code (folder współdzielony dla obu komputerów) to, co otrzymuję:
Initialized empty Git repository in C:/code/code/.git/
fatal: 'C:/Program Files (x86)/Git/code' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
Jak mogę udostępnić repozytorium między dwoma komputerami w najprostszy sposób.
Będą inne lokalizacje, które będą oficjalnymi punktami przechowywania i miejscami, z których będą pobierać inni deweloperzy i serwer CI itp. To jest po prostu, że mogę pracować na tym samym repozytorium na dwóch komputerach.
Zgodnie z sugestią Sebastiana otrzymuję:
C:\code>git clone --no-hardlinks file://192.168.10.51/code
Initialized empty Git repository in C:/code/code/.git/
fatal: 'C:/Program Files (x86)/Git/code' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
** EDYCJA - ODPOWIEDŹ **
Dzięki wszystkim, którzy pomogli. Próbowałem mapować dysk i działało, więc pomyślałem, że wrócę i spróbuję ponownie bez mapowania. Ostateczny wynik to:
git clone file://\\\\192.168.0.51\code
To działało świetnie.
Dzięki
Odpowiedzi:
Możesz określić adres URL pilota, stosując ścieżkę UNC do protokołu pliku. Wymaga to użycia czterech ukośników:
Na przykład, jeśli twój główny komputer ma adres IP 192.168.10.51 i nazwę komputera
main
, i ma nazwany udział,code
który sam jest repozytorium git, wówczas oba poniższe polecenia powinny działać jednakowo:Jeśli repozytorium Git znajduje się w podkatalogu, wystarczy dołączyć ścieżkę:
źródło
Powyższe polecenie używa notacji ścieżki POSIX dla katalogu z repozytorium git. W systemie Windows jest to (katalog
C:/path/to/repo
zawiera.git
katalog):Repozytorium zostanie sklonowane
C:\some\dir\my_project
. Jeśli pominieszfile:///
część,--local
sugerowana jest opcja.źródło
odpowiedź z nazwą hosta nie działała dla mnie, ale zadziałało:
źródło
Udało mi się to zrobić za pomocą file: //, ale z jednym dodatkowym ukośnikiem oznaczającym ścieżkę bezwzględną.
W moim przypadku używam Git na Cygwin dla Windows, co widać dzięki części / cygdrive / c na moich ścieżkach. Po drobnych poprawkach na ścieżce powinien działać z każdą instalacją git.
Dodanie pilota działa w ten sam sposób
źródło
Może zamapować udział jako dysk sieciowy, a następnie zrobić
Głównie tylko przypuszczenie; Zawsze robię to za pomocą ssh. Postępowanie zgodnie z tą sugestią będzie oznaczało, że będziesz musiał zmapować ten dysk za każdym razem, gdy naciskasz / ciągniesz do / z laptopa. Nie jestem pewien, jak ustawiasz ssh do pracy pod oknami, ale jeśli zamierzasz to robić dużo, być może warto to zbadać.
źródło
cd
do innego katalogu naZ:
dysku. IIRC; Od dłuższego czasu nie jestem użytkownikiem systemu Windows. Możliwe też, żegit
interpretuje litery dysków inaczej niż standardowa konwencja systemu Windows. Czy próbowałeś `Z:`?Nie jestem pewien, czy to z powodu mojej wersji git (1.7.2) czy co, ale powyższe podejścia przy użyciu nazwy komputera i opcji IP nie działały dla mnie. Dodatkowym szczegółem, który może / może nie być ważny, jest to, że repozytorium było nagim repozytorium, które zainicjowałem i wypchnąłem z innej maszyny.
Próbowałem sklonować projekt 1 zgodnie z zaleceniami powyżej za pomocą poleceń takich jak:
i
Co zrobiłem pracę dla mnie było coś prostsze:
Uwaga - mimo że klonowane repozytorium było puste, utworzyło to „normalny” klon ze wszystkimi rzeczywistymi plikami kodu / obrazu / zasobów, na które liczyłem (w przeciwieństwie do wewnętrznych elementów repozytorium git).
źródło
Wprowadź ścieżki bezwzględne lub ścieżki względne.
Na przykład pierwsza poniżej wykorzystuje ścieżki bezwzględne:
(pochodzi z folderu zawierającego repozytorium i kopię zapasową jako podfoldery. pamiętaj również, że folder kopii zapasowej nie jest modyfikowany, jeśli już coś zawiera. a jeśli go nie ma, zostanie utworzony nowy folder)
Następujące używa ścieżek względnych:
źródło
Chociaż ścieżka UNC jest obsługiwana od Gita 2.21 (luty 2019, patrz poniżej), Git 2.24 (IV kwartał 2019) pozwoli
Nie więcej
file:////xxx
”file://
wystarczy, aby odwołać się do udziału ścieżki UNC.Zobacz „ Błąd pobierania Git z UNC ”.
Uwaga: od 2016 roku i MingW-64 w
git.exe
pakiecie z Git dla Windows obsługiwana jest ścieżka UNC.(Patrz „W jaki sposób msys, msys2 i MinGW-64 są ze sobą powiązane? ”)
A w Git 2.21 (luty 2019 r.) Ta obsługa rozszerza się nawet w msys2 powłoce (z cudzysłowami wokół ścieżki UNC).
Zobacz zatwierdzenie 9e9da23 , zatwierdzenie 5440df4 (17 stycznia 2019 r.) Autor: Johannes Schindelin (
dscho
) .Pomagał: Kim Gybels (
Jeff-G
) .(Połączone przez Junio C Hamano -
gitster
- w commit f5dd919 , 05 lutego 2019)W wersjach wcześniejszych niż Git 2.21, z powodu dziwactwa w metodzie odradzania się Gita
git-upload-pack
, występuje problem z przekazywaniem ścieżek z odwrotnymi ukośnikami: Git zmusza linię poleceń przez powłokę, która ma inną semantykę cytowania w Git dla Windows (jest MSYS2 program) niż zwykłe pliki wykonywalne Win32, takie jakgit.exe
sam.Objawem jest to, że pierwszy z dwóch ukośników w UNC ścieżek postaci
\\myserver\folder\repository.git
jest odpędzono .Zostało to teraz złagodzone:
Widzieć
t/t5580-clone-push-unc.sh
źródło
Po klonowaniu push nie działał.
Rozwiązanie: w przypadku klonowania repozytorium otwórz folder .git i plik konfiguracyjny.
W przypadku wartości adresu URL zdalnego pochodzenia:
źródło