Czy można dodać .gitignore
plik do .gitignore
siebie?
.gitignore
Ale to nie działa
Nie chcę widzieć tego w edytowanych plikach
Czy można dodać .gitignore
plik do .gitignore
siebie?
.gitignore
Ale to nie działa
Nie chcę widzieć tego w edytowanych plikach
.gitignore
powinny być częścią twojego repozytorium, aby wszyscy w twoim zespole ignorowali lub sprawdzali te same pliki. To, że .gitignore
jest gdzieś w folderze z kodem, nie oznacza, że musisz go wdrożyć.
git rm --cached .gitignore
i untracking .gitignore
Odpowiedzi:
Celem .gitignore
pliku jest zapobieganie przypadkowemu zatwierdzeniu niektórych typowych plików w projekcie, takich jak wygenerowane pliki pamięci podręcznej, przez każdą osobę współpracującą przy projekcie. Dlatego nie powinieneś ignorować .gitignore
, ponieważ ma być uwzględniony w repozytorium.
Jeśli chcesz zignorować pliki tylko w jednym repozytorium, ale chcesz uniknąć zatwierdzania listy ignorowanych (na przykład dla plików osobistych), możesz dodać je do .git/info/exclude
tego repozytorium.
Jeśli chcesz zignorować określone pliki w każdym repozytorium na twoim komputerze, możesz utworzyć plik, ~/.gitignore_global
a następnie uruchomić
git config --global core.excludesfile ~/.gitignore_global
.Gitignore może się zignorować, jeśli nigdy nie został zarejestrowany:
mhaase@ubuntu:~$ git --version
git version 1.7.9.5
mhaase@ubuntu:~$ git init temp
Initialized empty Git repository in /home/mhaase/temp/.git/
mhaase@ubuntu:~$ cd temp
mhaase@ubuntu:~/temp$ touch .gitignore foo bar baz bat
mhaase@ubuntu:~/temp$ git status
# On branch master
#
# Initial commit
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# .gitignore
# bar
# bat
# baz
# foo
mhaase@ubuntu:~/temp$ echo "foo" >> .gitignore
mhaase@ubuntu:~/temp$ echo ".gitignore" >> .gitignore
mhaase@ubuntu:~/temp$ git status
# On branch master
#
# Initial commit
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# bar
# bat
# baz
nothing added to commit but untracked files present (use "git add" to track)
Jeśli zarejestrujesz .gitignore (zanim powiesz mu, aby się ignorował), to zawsze pojawi się on w statusie git, nawet jeśli później zmodyfikujesz go tak, aby sam się ignorował.
.gitignore
do pracy, z git-svn
którym nikt nie powinien widzieć. Więc po prostu dodałem to do siebie i po prostu zadziałało. Ale potem poszukałem w Google, żeby zobaczyć, czy jakieś spięte osoby wytłumaczą innym, jak to jest „złe”. Ta odpowiedź powinna zostać przyjęta, a następnie głosowałbym .git/info/exclude
również za sugestiami. Więc to musi być po prostu niezauważone ... Nie jest to zbyt zaskakujące, przynajmniej jeśli kiedykolwiek zostałeś "obalony" (svn).
.gitignore
Najpierw mam plik z kopią zapasową. Następnie używam git rm .gitignore
i dokonuję tej zmiany. Na koniec dodaj i .gitignore
ponownie zatwierdź plik z regułą dla .gitignore
. To działa!
git rm --cached .gitignore
.
Naprawdę nie ma dobrego powodu, aby to robić. Jeśli chcesz, aby pliki były ignorowane tylko dla twojego klona , dodaj je do .git/info/exclude
, a nie do .gitignore
pliku.
Po wprowadzeniu .gitignore
pliku gitignore spróbuj wykonać następujące czynności:
git rm -r --cached .
git add --all
git commit -m "ignoring gitignore"
git push --set-upstream origin master
Powinno działać, chociaż jak już wspomniano, ignorowanie gitignore może przynieść efekt przeciwny do zamierzonego, jeśli repozytorium jest udostępniane przez wielu użytkowników.
Tak, możesz; nadal widzisz go w edytowanych plikach, ponieważ nadal jest śledzony przez git, a pliki śledzone przez git są zawsze oznaczane jako zmodyfikowane, nawet jeśli znajdują się w .gitignore. Więc po prostu go wyśledzić .
Ale dlaczego nie zatwierdzić lub zresetować zmian, które na nim masz? To znacznie lepszy sposób na usunięcie go ze statusu ... Należy również pamiętać, że każdy nowy klon repozytorium będzie musiał dodać jego .gitignore
, co może być denerwujące.
got rm --cached .gitignore
prawdopodobnie będziesz musiał usunąć go oddzielnie z git przez .
.gitignore
ma być częścią twojego repozytorium, wymieniając wzorce plików, które są śmieciami dla projektu.