2013-04-01 10 views
22

Mam problemy z moim git na komputerze z systemem Windows. Zawsze mam jakieś pliki git, które są modyfikowane w każdym repozycie, pliki, które są wyświetlane jako zmodyfikowane, są takie same.git na windows pokazuje zmodyfikowane pliki przez cały czas, nawet dla nowo sklonowanego repo

Jeśli sklonuję nowe repozytorium i użyję tortoisegit do zatwierdzenia, widzę niektóre pliki jako zmodyfikowane, nawet jeśli nigdy nie dotknąłem jednego pliku w repozytorium. "gitstatus" nie pokazuje żadnych modyfikacji, ale każda pomoc jest doceniana. Dzięki

+0

[Koniec linii] (https://help.github.com/articles/dealing-with-line-endings) to prawdopodobnie Twój problem. –

+0

To prawdopodobnie błąd w grze tortoisegit, podobny do błędu w GitHub dla systemu Windows: http://stackoverflow.com/questions/15717077/line-endings-with-cygwin-and-github-for-windows/15719108# –

Odpowiedz

19

Sprawdź, czy zmiany są jedynie zmianami w uprawnieniach do plików. Z tego powodu w moim przypadku zarówno TortoiseGit jak i Git Extensions wyświetlały niezmodyfikowane pliki.

Użyj git config core.fileMode false do ignore chmod differences (lub bezpośrednio edytuj plik.git/config).

Możesz także ustawić tę globalną konfigurację jako git config --global core.filemode false.

+5

W systemie Windows nie ma to żadnego znaczenia, chyba że używasz git z Cygwin. – rustyx

14

To problem z końcówkami linii. Ustaw to na swoim komputerze z systemem Windows:

git config --global core.autocrlf true 
+0

, plik pojawi się zmieniony, a nawet zakończenia linii pojawią się dokładnie tak samo. Dzieje się tak dlatego, że Git porównuje wersję, która ma zostać zatwierdzona, ale przedstawia lokalne wersje. Będziesz musiał zatwierdzić plik raz po zmianie ustawienia 'autocrlf', a na przyszłość upewnij się, że wszyscy w zespole mają ustawione to ustawienie poprawnie. – rustyx

9

Żadna z proponowanych poprawek nie zadziałała. Jednak miałem zainstalowane Cygwin i TortoiseGit podniósł swoją ścieżkę po zainstalowaniu. Rozwiązałem go instalując oficjalny pakiet Git i zmieniłem ścieżkę w TortoiseGit.

+1

Wiem, że to jest stare, ale to było jedyne, które pomogło mi. Będziesz mieć ten problem ponownie, za każdym razem, gdy uaktualnisz TurtoiseGit, chyba że (zakładam), że twoja konfiguracja PATH jest poprawna, ze ścieżką GIT przed ścieżką Cygwin. – lionscribe

6

przypadku korzystania TortoiseGit z Cygwin git (nie oficjalnie wspierane), kilka dodatkowych kroków konfiguracji należy zrobić:

  1. Wybierz [CYGWIN-INSTALL-PATH]\bin-folder jak git.exe folder.

  2. Skonfiguruj zmienną środowiskową HOME w systemie Windows, tak aby Cygwin i TortoiseGit używały tego samego katalogu domowego i globalnej git-config. Użyj tutaj zwykłej notacji systemu Windows (np. C:\Users\USERNAME). Domyślnie TortoiseGit używa katalogu domowego Windows, który zwykle znajduje się pod c: \ Users, a Cygwin używa własnych katalogów domowych, które znajdują się pod [CYGWIN-INSTALL-PATH]\home.

  3. Konfiguracja AutoCrLf, jest to konieczne, ponieważ TortoiseGit i Cygwin Git mają różne ustawienia domyślne. Domyślnie w Cygwin Git jest true.

  4. Przejdź do TortoiseGit w sekcji o nazwie Advanced Settings i ustaw CygwinHack na true w celu aktywacji obejść cygwin.

  5. Restart.

Krok nr 4 ma kluczowe znaczenie i rozwiązał problem.

odniesienia (patrz Cygwin Git sekcji): https://tortoisegit.org/docs/tortoisegit/tgit-dug-settings.html

1

prostu miałem ten problem i dylemat dla mnie okazało się całkiem proste.

Upewnij się, że aktualnie nie działają procesy git, a następnie usuń .git\index.lock.

Po tym zmodyfikowanym stanie moich plików zostały prawidłowo obsługiwane.

Powiązane problemy