Mam repozytorium z pliku Hello.java
. Podczas kompilacji Hello.class
generowany jest dodatkowy plik.
Utworzyłem wpis Hello.class
w .gitignore
pliku. Jednak plik nadal wydaje się być śledzony.
Jak sprawić, by Git ignorował Hello.class
?
Mam repozytorium z pliku Hello.java
. Podczas kompilacji Hello.class
generowany jest dodatkowy plik.
Utworzyłem wpis Hello.class
w .gitignore
pliku. Jednak plik nadal wydaje się być śledzony.
Jak sprawić, by Git ignorował Hello.class
?
Odpowiedzi:
Problem polega na tym, że .gitignore
ignoruje tylko pliki, które nie były wcześniej śledzone git add
. Uruchom, git reset name_of_file
aby 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_file
usunie plik z repozytorium git. Nawet jeśli dodasz go do pliku .gitignore. To nie jest ignorowanie, że usuwa.
git reset name_of_file
usuwa ś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/exclude
pliku. 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>
local
git ignore, i zrestartowałem system, nadal pokazuje działanie bezpośrednio czyste.
update-index
sztuczkę, absolutnie idealną, aby uniknąć zmiany .gitignore
pliku, 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.class
do .gitignore
zignoruje każdy plik wywołany Hello.class
w dowolnym podkatalogu. Jeśli zamierzasz zignorować plik tylko Hello.class
w tym samym katalogu, co .gitignore
plik, użyj /Hello.class
zamiast tego wiersza.
.gitignore
plik?
.gitignore
dowolnym miejscu projektu git - jeśli ścieżka zaczyna się od /
, będzie względna do położenia .gitignore
pliku; w przeciwnym razie będzie rekurencyjnie odwoływał się do plików w bieżącym katalogu i jego katalogach potomnych.
1) Utwórz .gitignore
plik. Aby to zrobić, wystarczy utworzyć .txt
plik 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.txt
jest 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 -a
ma 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 -a
ma prawo popełnić że zmiana) „.
Utwórz .gitignore
w 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
.gitignore
plikach (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 .gitignore
pliku.
*.class
do swojego .gitignore
dokonać 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 .gitignore
pliku, 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:
.gitignore
plik.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 src
katalogu.
git rm -r --cached .
git add .
Próbowałem --assume-unchanged
i również, .gitignore
ale ż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.