git dodaj wszystko oprócz ignorowania plików w pliku .gitignore

120

Dodaję kontrolę źródła do projektu, który nie miał. Problem polega na tym, że istnieje wiele plików, które początkowo należy dodać do gita za pomocą pliku .gitignore , ale nie mogę dowiedzieć się, jak dodać wszystkie pliki bez uwzględnienia plików pasujących do czegoś w pliku .gitignore .

git add *

Powyższe polecenie nie doda żadnych plików, ponieważ wykrywa pliki, które są ignorowane przez .gitignore .

git add -f *

Powyższe polecenie doda wszystkie pliki, w tym pliki, które chcę zignorować.

Jak więc dodać wszystkie pliki, nadal zachowując zgodność z plikiem .gitignore ?

Bogate w e
źródło

Odpowiedzi:

251

Myślę, że masz na myśli, git add .który doda wszystkie pliki do repozytorium, których AREN'T nie określił w .gitignore- możesz zobaczyć te zmiany, wpisującgit status

.W bash zwykle oznacza ten katalog i wszystkie inne katalogi rekurencyjnie, więc jeśli to zrobić z poziomu dolnego swoim repo, należy dodać wszystkie pliki.

Mój typowy przepływ git polega na utworzeniu .gitignorepliku i dodaniu plików projektu do repozytorium. Przetestuję .gitignoreplik, wpisując git statuspo zaimportowaniu plików - jeśli zobaczę pliki, które dodałem (na przykład tylko .php lub .html, a nie .mp3 lub .mov), wtedy możesz git add .dodać wszystkie, a git commit -m "initial commit"do popełnij ich i powinieneś być ustawiony.

Nic
źródło
3
co jeśli zrobię, git add --all .jaka jest różnica git add .w tym kontekście?
Katedral Pillon
2
to jest to samo, co git add.
user454232
27
git add .

Spowoduje to dodanie wszystkich ścieżek i zignorowanie dopasowań z .gitignore

Leom Burke
źródło
13

Spróbuj git add . (co oznacza „dodaj wszystkie pliki w bieżącym katalogu i poniżej”)

wadesworld
źródło
5

Inną opcją jest użycie excludepliku repozytorium Git . Ten plik działa podobnie do .gitignorepliku, ale nie jest zatwierdzony w repozytorium.

Z dokumentacji Github :

Możesz użyć tej techniki w przypadku plików generowanych lokalnie, których nie oczekujesz od innych użytkowników, takich jak pliki utworzone przez Twój edytor.

Użyj swojego ulubionego edytora tekstu, aby otworzyć plik o nazwie .git/info/excludew katalogu głównym repozytorium Git. Żadna reguła, którą tutaj dodasz, nie zostanie wpisana i zignoruje tylko pliki z lokalnego repozytorium.

  1. W Terminalu przejdź do lokalizacji swojego repozytorium Git
  2. Otwórz plik w swoim ulubionym edytorze tekstu .git/info/exclude
  3. Dodaj reguły do excludepliku tak, jak do .gitignorepliku
Brett DeWoody
źródło