Mam repozytorium z pliku Hello.java. Podczas kompilacji Hello.classgenerowany jest dodatkowy plik.
Utworzyłem wpis Hello.classw .gitignorepliku. Jednak plik nadal wydaje się być śledzony.
Jak sprawić, by Git ignorował Hello.class?
Mam repozytorium z pliku Hello.java. Podczas kompilacji Hello.classgenerowany jest dodatkowy plik.
Utworzyłem wpis Hello.classw .gitignorepliku. Jednak plik nadal wydaje się być śledzony.
Jak sprawić, by Git ignorował Hello.class?
Odpowiedzi:
Problem polega na tym, że .gitignoreignoruje tylko pliki, które nie były wcześniej śledzone git add. Uruchom, git reset name_of_fileaby cofnąć scenę pliku i zachować go. Jeśli chcesz również usunąć dany plik z repozytorium (po wypchnięciu), użyj git rm --cached name_of_file.
git rm --cached name_of_fileusunie plik z repozytorium git. Nawet jeśli dodasz go do pliku .gitignore. To nie jest ignorowanie, że usuwa.
git reset name_of_fileusuwa śledzenie i nie usuwa pliku.
Jak zignorować nowe pliki
Globalnie
Dodaj ścieżki do pliku (plików), które chcesz zignorować .gitignore(i zatwierdź). Te wpisy pliku będą miały również zastosowanie do innych osób sprawdzających repozytorium.
Lokalnie
Dodaj ścieżki do pliku, które chcesz zignorować w swoim .git/info/excludepliku. Te wpisy pliku będą miały zastosowanie tylko do lokalnej kopii roboczej.
Jak zignorować zmienione pliki (tymczasowo)
Aby zignorować zmienione pliki, aby były wyświetlane jako zmodyfikowane, możesz użyć następującego polecenia git:
git update-index --assume-unchanged <file>
Aby przywrócić tę ignorancję, użyj następującego polecenia:
git update-index --no-assume-unchanged <file>
localgit ignore, i zrestartowałem system, nadal pokazuje działanie bezpośrednio czyste.
update-indexsztuczkę, absolutnie idealną, aby uniknąć zmiany .gitignorepliku, który jest następnie śledzony przez Git!
Dodaj następujący wiersz do .gitignore:
/Hello.class
Wyklucza to Hello.class z git. Jeśli już to zrobiłeś, uruchom następującą komendę:
git rm Hello.class
Jeśli chcesz wykluczyć wszystkie pliki klas z git, dodaj następujący wiersz do .gitignore:
*.class
Hello.classdo .gitignorezignoruje każdy plik wywołany Hello.classw dowolnym podkatalogu. Jeśli zamierzasz zignorować plik tylko Hello.classw tym samym katalogu, co .gitignoreplik, użyj /Hello.classzamiast tego wiersza.
.gitignoreplik?
.gitignoredowolnym miejscu projektu git - jeśli ścieżka zaczyna się od /, będzie względna do położenia .gitignorepliku; w przeciwnym razie będzie rekurencyjnie odwoływał się do plików w bieżącym katalogu i jego katalogach potomnych.
1) Utwórz .gitignoreplik. Aby to zrobić, wystarczy utworzyć .txtplik i zmienić rozszerzenie w następujący sposób:

Następnie musisz zmienić nazwę, wpisując następujący wiersz w oknie cmd:
rename git.txt .gitignore
Gdzie git.txtjest nazwa właśnie utworzonego pliku.
Następnie możesz otworzyć plik i zapisać w repozytorium wszystkie pliki, których nie chcesz dodawać. Na przykład mój wygląda następująco:
#OS junk files
[Tt]humbs.db
*.DS_Store
#Visual Studio files
*.[Oo]bj
*.user
*.aps
*.pch
*.vspscc
*.vssscc
*_i.c
*_p.c
*.ncb
*.suo
*.tlb
*.tlh
*.bak
*.[Cc]ache
*.ilk
*.log
*.lib
*.sbr
*.sdf
*.pyc
*.xml
ipch/
obj/
[Bb]in
[Dd]ebug*/
[Rr]elease*/
Ankh.NoLoad
#Tooling
_ReSharper*/
*.resharper
[Tt]est[Rr]esult*
#Project files
[Bb]uild/
#Subversion files
.svn
# Office Temp Files
~$*
Gdy to zrobisz, musisz dodać go do swojego repozytorium Git. Musisz zapisać plik, w którym znajduje się twoje repozytorium.
Następnie w Git Bash musisz napisać następujący wiersz:
git config --global core.excludesfile ~/.gitignore_global
Jeśli repozytorium już istnieje, musisz wykonać następujące czynności:
git rm -r --cached .git add .git commit -m ".gitignore is now working"Jeśli krok 2 nie działa, powinieneś napisać całą trasę plików, które chcesz dodać.
Ignorować:
git update-index --assume-unchanged <path/to/file>
Aby cofnąć ignorowanie:
git update-index --no-assume-unchanged <path/to/file>
lstat(2)kosztów, to zastrzega sobie prawo zgłosić, że droga została zmodyfikowana (... git commit -ama prawo popełnić że zmiana) „.
Możesz użyć poniższych metod ignorowania / nie ignorowania zmian w śledzonych plikach.
git update-index --assume-unchanged <file>git update-index --no-assume-unchanged <file>lstat(2)kosztów, to zastrzega sobie prawo zgłosić, że droga została zmodyfikowana (... git commit -ama prawo popełnić że zmiana) „.
Utwórz .gitignorew katalogu, w którym znajduje się .git. Możesz wyświetlić listę plików oddzielonych znakiem nowej linii. Możesz także używać symboli wieloznacznych:
*.o
.*.swp
.gitignoreplikach (chyba że projekt nakazuje to narzędzie). Możesz umieszczać wzory dla swoich ulubionych narzędzi w pliku wykluczającym na użytkownika (zestaw core.excludesFile); będą działać we wszystkich twoich repozytoriach. Np. git config --global core.excludesFile "$HOME/.git-user-excludes"Następnie umieść je w tym pliku.
Z oficjalnej strony GitHub:
Jeśli plik jest już zalogowany i chcesz go zignorować, Git nie zignoruje pliku, jeśli dodasz regułę później. W takich przypadkach należy najpierw wyśledzić plik, uruchamiając w terminalu następującą komendę:
git rm --cached FILENAME
lub
git rm --cached .
Powinieneś napisać coś takiego
*.class
do twojego .gitignorepliku.
*.classdo swojego .gitignoredokonać git ignorować wszystkie pliki kończące się na .class.
Tworząc plik .gitignore. Zobacz szczegóły: Git Book - Ignorowanie plików
Zobacz też: Jak sprawić, by Git ignorował pliki bez używania .gitignore?
Jeśli plik został już zatwierdzony i próbujesz go zignorować, dodając do .gitignorepliku, Git go nie zignoruje. W tym celu musisz najpierw wykonać następujące czynności:
git rm --cached FILENAME
Jeśli zaczynasz projekt świeżo i chcesz dodać niektóre pliki do Git ignore, wykonaj poniższe kroki, aby utworzyć plik Git ignore:
.gitignoreplik.Możesz także użyć .gitattributes (zamiast .gitignore), aby wykluczyć całe typy plików. Plik jest dość zrozumiały, ale wklejam tutaj zawartość w celach informacyjnych. Zwróć uwagę na ostatni wiersz (* .class binarny):
# Denote all files that are truly binary and should not be modified.
*.png binary
*.jpg binary
*.gif binary
*.ico binary
*.mo binary
*.pdf binary
*.phar binary
*.class binary
Dodaj następujący wiersz do .git / info / exclude:
Hello.class
.git?
Miałem podobny problem z plikiem „dump.rdb”.
Próbowałem dodać ten plik na różne sposoby do pliku .gitignore, ale działał tylko jeden sposób.
Dodaj swoją nazwę pliku na końcu pliku .gitignore
UWAGA: Dodanie pliku w innym miejscu nie działało.
Na przykład patrz: https://gitlab.com/gitlab-org/gitlab-ce/raw/b3ad3f202478dd88a3cfe4461703bc3df1019f90/.gitignore
Ta strona może być przydatna i oszczędzać czas podczas pracy .gitignore.
Automatycznie generuje pliki .gitignore dla różnych IDE i systemów operacyjnych z określonymi plikami / folderami, których zwykle nie chcesz pobierać do repozytorium Git (na przykład foldery specyficzne dla IDE i pliki konfiguracyjne).
Próbowałem tego -
git status
.idea/xyz.xml
.idea/pqr.iml
Output
.DS_Store
echo "
.idea/xyz.xml
.idea/pqr.iml
Output
.DS_Store" >> .gitignore
git status
.gitignore
podobnie możemy dodać katalog i wszystkie jego podkatalogi / pliki, które chcemy zignorować w statusie git za pomocą directoryname/*i wykonałem to polecenie z srckatalogu.
git rm -r --cached .git add .Próbowałem --assume-unchangedi również, .gitignoreale żaden z nich nie działał dobrze. Utrudniają zmianę gałęzi i łączenie zmian od innych. To jest moje rozwiązanie:
Po zatwierdzeniu ręcznie usuwam pliki z listy zmian
Zanim ciągnąć , ja schować zmienione pliki. A po pociągnięciu robię stash pop .
Krok 3 czasami wyzwala scalenie i może doprowadzić do konfliktu, który musisz rozwiązać, co jest dobrą rzeczą.
Pozwala mi to zachować lokalne zmiany, które nie są udostępniane innym członkom zespołu.