2016-04-01 9 views
8

Pracowałem nad projektem i edytowałem kilka plików w folderze. Ten folder znajduje się na moim lokalnym i nie jest oglądany przez GIT. Zwykle kopiuję cały folder na inny komputer, który jest obserwowany przez GIT, aby zostać przeniesionym na repozytorium. Problem polega na tym, że wiele plików jest pokazywanych jako zmienione z powodu zakończenia linii i pojawiania się spacji, ponieważ są one kopiowane z okien do systemu Linux.Czy istnieje sposób w GIT, aby usunąć pliki zmienione z zatwierdzenia, jeśli ma mniej niż 2 znaki zmienione?

Wykonałem następujące polecenie: git diff --stat, aby wyświetlić wszystkie zmienione pliki z # zmienionymi wierszami/znakami.

enter image description here

Jak widać wiele z tych plików mają zero zmian odbywać się na nich. Jednak nadal są wyświetlane w zmodyfikowanej sekcji git status.

Jak usunąć lub przywrócić te z powrotem do normy, ponieważ nigdy nie zmieniłem nic z tymi plikami?

+2

Lepsze pytanie brzmi: w jaki sposób można uzyskać git do ignorowania nowej linii zmiany. [Tutaj jest dokument Githuba na ten temat] (https://help.github.com/articles/dealing-with-line-endings/). – Schwern

+0

Dzięki za wyjaśnienia. Czy ten sprawca powoduje ten problem? –

+2

Możliwy duplikat statusu [Git status ignore end endings/identyczne pliki/windows & linux environment/dropbox/mled] (http://stackoverflow.com/questions/20496084/git-status-ignore-line-endings-identical-files- windows-linux-environment) –

Odpowiedz

1

Myślę, że jest bardziej prawdopodobne, że pliki te są wyświetlane ze względu na zmiany trybu. Spróbuj uruchomić git diff na jednym z nich. Czy widzisz coś takiego?

$ git diff query.viewport.js 
diff --git a/query.viewport.js b/query.viewport.js 
old mode 100644 
new mode 100755 

Jeśli tak, to może być w stanie rozwiązać ten problem z czymś takim:

$ find modules/hotsite/ -type f -print0 | xargs -0 chmod -x 
5

Sprawdź konfigurację docelowego repozytorium Git, w którym skopiujesz te pliki.

git config core.autocrlf 

Upewnij się, aby ustawić go na false: git config core.autocrlf false (see more here).

Następnie dwukrotnie sprawdź obecność i zawartość plików .gitattributes. Mogą wpływać na eol również z core.eol directives.

Powiązane problemy