2015-01-02 1 views
5

Chcę pobrać z repozytorium git w systemie Windows, który ma dwa katalogi o nazwach Foo i foo. Oba foldery mają różną zawartość.Praca w git z katalogami o tej samej nazwie, ale innym przypadku w systemie Windows

Ponieważ w systemie Windows nie ma znaczenia wielkość liter i nie można używać folderów o tej samej nazwie, ale w różnych przypadkach, w jaki sposób mogę przekazać do repozytorium git?

+0

Nie wiem, jak to działa w praktyce, nie przejmuj się próbować, [ale jest to] (http://superuser.com/a/842670). Sam NTFS działa dobrze z rozróżnianiem wielkości liter, ale wszystkie systemy Windows domyślnie obsługują papier. – jthill

Odpowiedz

5

Krótka odpowiedź: Nie możesz.

Ponieważ jest to ograniczenie podstawowego systemu plików (NTFS), a nie tylko systemu Windows, naprawdę nie można wiele z tym zrobić. System plików nie różni się między różnymi obudowami; więc nawet jeśli Git jest w stanie śledzić różnice, nie może przekazać tej różnicy do systemu plików.

To, co możesz zrobić, aby być może, to tworzyć częściowe zatwierdzenia, w których po prostu dodajesz pliki do właściwego folderu (musisz zmienić nazwę, aby uzyskać inną obudowę). Ale to będzie bardzo niepraktyczne.

Najlepszym rozwiązaniem jest po prostu nie używać wielu folderów o sprzecznej nazwie. Nawet w systemach plików z rozróżnianiem wielkości liter sprawi, że rzeczy będą bardziej zagmatwane.

1

Jako kontynuację odpowiedzi poke, musisz podzielić te katalogi na różne nazwy lub połączyć je w jeden o tej samej nazwie, w zależności od potrzeb. Nie mogą mieć tego samego imienia w innym przypadku i mają działać w systemie Windows (w sposób oczywisty i oczywisty).

Przypadkowo znalazłem się na tej samej łodzi. Nie jestem pewien jak, ponieważ cały czas korzystałem z systemu Windows, ale w pewnym momencie zmieniłem katalog na repozytorium, a niektóre pliki pozostały w katalogu ze "starą" nazwą, a niektóre w jednym z "nowa" nazwa. Na moim komputerze z systemem Windows wszystkie były pod nową nazwą, ale znalazłem ten problem, gdy przeniosłem repo na Linuksa i potwierdziłem podział, gdy zajrzałem do repozytorium Assembla.

Aby to naprawić, najpierw sklonowałem komputer w oddzielnym miejscu na moim komputerze z systemem Windows. W ten sposób wszystkie pliki pojawiły się ponownie w jednym katalogu, ponieważ najwyraźniej oba katalogi zostały scalone. Następnie zmieniłem nazwę tego katalogu problemów na "temp" (używając operacji "zmień nazwę TortoiseGit"). Następnie sklonowałem repozytorium do innej lokalizacji. W tym momencie oba katalogi zostały rozdzielone w systemie Windows. Miałem "temp", plus katalog ze "starą" nazwą.

Tak naprawdę, jak chciałam je w jednym katalogu (na wszystkich platformach!), Przeniosłem pliki ze starego katalogu nazwanego na "temp", a następnie usunąłem "stary" katalog. Następnie zmieniłem nazwę na temp (używając ponownie operacji "Zmień nazwę TortoiseGit") na nazwę, w której chciałem wszystko wewnątrz, zatwierdzone i ponownie wciśnięte. W końcu wprowadziłem zmiany do mojego pierwotnego repo, mojego linuxa i spojrzałem na Assembla. Wszystko w końcu się zgadzało, więc usunąłem te tymczasowe klony i nazwałam je dniem.

+0

Też miałem ten sam problem. Łatwiejsze rozwiązanie można znaleźć tutaj: https://stackoverflow.com/questions/11183788/in-a-git-repository-how-to-properly-rename-a-directory –

+0

Cool. Dziękuję Ci. – BuvinJ