W przypadku Git / Github dla Windows, jeśli mam repozytorium z tym katalogiem: C:\dir1\dir2
co muszę zrobić, aby przenieść pliki repo C:\dir1
? Mogę oczywiście fizycznie skopiować i wkleić pliki, ale co muszę zrobić po stronie Git?
Mam to repozytorium na GitHub i używam Git Bash i GitHub dla Windows.
git
github
github-for-windows
Mikael Engver
źródło
źródło
Odpowiedzi:
Po prostu skopiuj całą zawartość katalogu roboczego (w tym ukryty
.git
katalog). Spowoduje to przeniesienie całego katalogu roboczego do nowego katalogu i nie wpłynie na zdalne repozytorium w GitHub.Jeśli korzystasz z GitHub dla Windows, możesz przenieść repozytorium przy użyciu metody opisanej powyżej. Jednak po kliknięciu repozytorium w aplikacji nie będzie można go znaleźć. Aby rozwiązać ten problem, kliknij niebieski okrąg za pomocą!, Wybierz Znajdź, a następnie przejdź do nowego katalogu.
źródło
Nie jestem pewien pytania, więc oto dwie odpowiedzi:
Jeśli chcesz przenieść swoje repozytorium:
Po prostu skopiuj całe repozytorium (wraz z jego
.git
katalogiem).W
.git
strukturze nie ma bezwzględnej ścieżki i nic nie stoi na przeszkodzie, aby ją przenieść, więc po ruchu nie masz nic do roboty. Wszystkie linki do github (patrz w.git/config
) będą działać jak poprzednio.Jeśli chcesz przenieść pliki do repozytorium:
Po prostu przenieś pliki. Następnie dodaj zmiany wymienione w
git status
. Następnycommit
zrobi konieczne. Z przyjemnością dowiesz się, że żaden plik nie zostanie zduplikowany: przenoszenie pliku w git jest prawie bezkosztowe.źródło
.git
katalogu.Jeśli używasz
GitHub Desktop
, wykonaj następujące czynności:GitHub Desktop
i wszystkie inne aplikacje z otwartymi plikami do bieżącej ścieżki do katalogu.GitHub Desktop
i kliknij niebieską (!) Ikonę „nie znaleziono repozytorium”. Następnie otworzy się okno dialogowe i zobaczysz przycisk „Zlokalizuj ...”, który otworzy wyskakujące okienko, pozwalając ci skierować jego ścieżkę do nowej lokalizacji.źródło
Chociaż pytanie dotyczy Git dla Windows, wydaje się, że jest to najlepszy wynik, nawet podczas wyszukiwania Visual Studio Tools For Git (rozszerzenie w VS 2012, natywne wsparcie w VS 2013).
Wykorzystując powyższe rozwiązania jako przewodnik, ustaliłem, że Visual Studio Git Tools sprawia, że przenoszenie repozytoriów (lub nawet całej struktury katalogów dla wszystkich repozytoriów) jest bardzo łatwe lokalnie.
1) Zamknij program Visual Studio. 2) Przenieś foldery Repo do nowej lokalizacji. 3) Otwórz Visual Studio. Otwórz Team Explorer. Przejdź do widoku „Połącz” (ikona wtyczki u góry). 3a) Jeśli Repos nadal pokazują starą ścieżkę, kliknij Odśwież, aby wymusić aktualizację. 4) Repo, które zostały przeniesione lokalnie, nie powinny już być wyświetlane w „ Lokalnych repozytoriach Git ”. 5) Kliknij Dodaj (nie nowy lub klon) i wybierz folder repo, który chcesz dodać.
W kroku 5 naprawdę podajesz ścieżkę wyszukiwania, a wyszukiwanie automatycznie obejmuje wszystkie podfoldery. Jeśli masz wiele repozytoriów zorganizowanych w jednym katalogu głównym (niezależne repozytoria mają tylko ten sam folder nadrzędny), wówczas wybranie nadrzędnego obejmie wszystkie repozytoria znalezione poniżej.
Przykład: E: \ Repos \ RepoA E: \ Repos \ RepoB E: \ Repos \ RepoC
W Visual Studio Team Explorer [Dodaj]> „E: \ Repos \”> [Dodaj] zwróci wszystkie trzy do repozytoriów lokalnych.
źródło
Chociaż wszystkie poprzednie odpowiedzi wydają się mówić, że możesz po prostu przenieść katalog i nie ma ścieżek bezwzględnych w strukturze .git. Odkryłem, że jest to nieprawda, gdy korzystam z gita z Cygwin.
Kiedy przeniosłem moje repozytorium git (w rzeczywistości przywróciłem je z kopii zapasowej, ale na inny dysk, ponieważ zmieniła się struktura mojego dysku w moim nowym systemie). Mam komunikat o błędzie jak
Użyłem grep, aby znaleźć, że w moim pliku .git / config w sekcji [core] jest zmienna worktree, która zawiera bezwzględną ścieżkę mojego repozytorium git. Zmiana tego rozwiązała problem dla mnie.
źródło
Używam wtyczki git Visual Studio i mam kilka stron internetowych działających na IIS, które chciałem przenieść. Prosty sposób, który zadziałał dla mnie:
Zamknij Visual Studio.
Przenieś kod (w tym folder git itp.)
Kliknij plik rozwiązania z nowej lokalizacji
Odświeża to mapowanie do nowej lokalizacji, wykorzystując istniejące lokalne pliki git, które zostały przeniesione. Gdy wróciłem do Visual Studio, moje okno Team Explorer pokazało repozytorium w nowej lokalizacji.
źródło
Używam Github Desktop dla Windows i chciałem przenieść lokalizację repozytorium. Nie ma problemu, jeśli przeniesiesz katalog i wybierzesz nową lokalizację w oprogramowaniu. Ale jeśli ustawisz zły katalog, pojawi się błąd krytyczny i nie będzie drugiej szansy na przeniesienie do dobrego. Aby to naprawić. Musisz skopiować pliki projektu do złego katalogu, dokonać jego ponownej konfiguracji przez Github Desktop, po czym możesz ponownie przenieść swój projekt do innego folderu i dokonać relokacji w oprogramowaniu. Nie trzeba w tym celu zamykać programu Github Desktop, sprawdzi on foldery na żywo.
Mam nadzieję, że to komuś pomoże.
źródło
To nie działało dla mnie. Przenieśliłem repozytorium z (np.) C: \ project1 \ do c: \ repo \ project1 \ i Git dla Windows nie pokazuje żadnych zmian.
Status git pokazuje błąd, ponieważ jeden z submodułów „nie jest repozytorium git” i pokazuje starą ścieżkę. np. (nazwy zmieniono w celu ochrony IP)
fatal: Not a git repository: C: /project1/.git/modules/subproject/subproject2 fatal: 'git status --porcelain' nie powiodło się w podprojekcie submodułu
Musiałem ręcznie edytować pliki .git w podmodułach, aby wskazać prawidłową ścieżkę względną do repozytorium podmodułu (w katalogu .git / modules repozytorium głównego)
źródło
Raport z przyszłości: kwiecień 2018 r.
Chciałem znormalizować moje lokalne repozytoria na komputerze Mac i Windows, które znalazły się w różnych lokalnych folderach.
Klient systemu Windows 10 kazał mi przejść przez procedurę „Nie mogę znaleźć”> „Lokalizuj”, nużącą, ale nie straszną. Należy także zaktualizować lokalną „ścieżkę klonowania” w Opcjach do przyszłego użytku.
Kiedy skonsolidowałem foldery Mac, klient Github właśnie je znalazł - nie musiałem nic robić!
źródło
Aby ustawić domyślną ścieżkę lokalną do repozytoriów za każdym razem, gdy klonujesz jedno z nich, musisz tylko sklonować repozytorium tylko raz i ustawić ścieżkę lokalną: / twoja-ścieżka, a następnie github automatycznie wykryje tę ścieżkę jako domyślną.
źródło
Bardziej oparte na Git podejściu byłoby wprowadzenie zmian w lokalnej kopii za pomocą
cd
lub skopiowaniu i wklejeniu, a następnie wypchnięciu tych zmian z lokalnego do zdalnego repozytorium.Próba sprawdzenia stanu lokalnego repozytorium może pokazać „nieśledzone zmiany”, które w rzeczywistości są przeniesionymi plikami. Aby wymusić te zmiany w sposób wymuszony, musisz wprowadzić pliki / katalogi za pomocą
Mam nadzieję, że to pomoże.
źródło