Chciałbym uniemożliwić Gitowi pokazywanie ignorowanych plików git status
, ponieważ posiadanie ton dokumentacji i plików konfiguracyjnych na liście Zmienionych, ale niezaktualizowanych plików sprawia, że lista jest w połowie bezużyteczna.
Czy to normalne, że Git wyświetla te pliki?
Umieszczam informacje o ignorowaniu w .gitignore
pliku w katalogu głównym repozytorium Git i nie są one dodawane podczas używania, git add .
ale wydaje się, że nie są one również w pełni ignorowane, ponieważ pojawiają się na powyższej liście i nie pojawiają się na liście wydrukowane przez git ls-files --others -i --exclude-standard
. Pojawiają ~/.gitignore
się tam tylko pliki pasujące do wzorców w programie.
Czy to możliwe, ponieważ na wcześniejszym etapie ich nie ignorowałem i przynajmniej raz zostały w ten sposób popełnione?
git status -- <file>
w Twoim pliku jest wyświetlany komunikat „Zmiany nie są wprowadzane w fazie zmian” lub „Pliki bez śledzenia”? Pierwsza z nich to jeśli masz już plik w indeksie i potrzebowałbym więcej informacji, aby rozwiązać twój problem (lepiej utwórz osobne pytanie z wyświetlonymi wiadomościami git i po prostu opublikuj link do niego w komentarzu). Późniejszy dotyczy plików, które nie są śledzone przez git (jeszcze), ale nie znajdują się w.gitignore
pliku i można je dowolnie dodawać do indeksu.Pojawił się również ten problem, prawdopodobnie dlatego, że dodałeś zignorowany katalog / pliki do .gitignore po tym, jak zostały oznaczone jako „do śledzenia” przez GIT w początkowym przepływie zatwierdzania.
Musisz więc wyczyścić pamięć podręczną śledzenia git w następujący sposób:
git rm --cached -r [folder/file name]
Bardziej szczegółowe wyjaśnienie można przeczytać tutaj: http://www.frontendjunkie.com/2014/12/stop-git-from-tracking-changes-to.html
Powyższe polecenie usunęło również pozostałości folderu / plików ze zdalnego źródła GIT. Twoje repozytoria GIT stają się czyste.
źródło
Problem może polegać na tym, że ten plik nadal znajduje się w pamięci podręcznej git. Aby rozwiązać ten problem, należy zresetować pamięć podręczną git.
Zresetuj pamięć podręczną git. To usuwa wszystko z indeksu.
Dodaj ponownie wszystkie pliki:
Popełnić:
źródło
To na pewno działa,
git rm --cached -r [folder/file name]
źródło
Zakładam, że nie chcesz dodawać katalogu tmp (platforma Visual Studio)
1- Dodaj linie poniżej do lokalnego pliku .gitignore
3 - tworzenie kopii zapasowych i lokalne usuwanie folderu tmp. (Utwórz kopię zapasową w innym miejscu, np. Na komputerze?)
4- Zatwierdź zmiany na Lokalny niż Synchronizuj ze zdalnym (np. Github).
Po tych krokach katalog tmp nie zostanie ponownie przesłany.
źródło
Z man git-lsfiles :
Osobiście staram się przechowywać pliki doxygen w moim drzewie źródłowym, więc po prostu dodałem to do mojego .gitignore (który znajduje się w najwyższym katalogu mojego drzewa źródłowego):
Mam nadzieję, że to pomoże.
źródło
Poniższe kroki działają tylko w przypadku nieśledzonych plików . Te informacje dotyczą następującej konfiguracji:
Umieść listę plików do zignorowania w pliku „wykluczenia” znajdującym się w następującej lokalizacji.
Początkowa zawartość pliku „wyklucz”
Ostateczna zawartość pliku „wyklucz”
źródło
Zgodnie z zaakceptowaną odpowiedzią możesz założyć, że plik jest niezmieniony , więc cokolwiek robisz na komputerze lokalnym, nie jest przekazywane do zdalnego oddziału.
Coś na przykład,
git update-index --assume-unchanged src/main/resources/config.properties
gdzie src / main.resources / config.properties to przykład ścieżki do znalezienia tego pliku w projekcie.Teraz, jeśli chcesz całkowicie usunąć plik z repozytorium, możesz użyć
remove cached
zamiast `git rm --cachedTen scenariusz może mieć zastosowanie w następującej sytuacji:
źródło
lubię to
I pokaże status tylko dla mojego folderu
źródło