.gitignore powinno działać. Czy możesz dostarczyć kopię wierszy, które umieściłeś w .gitignore, aby spróbować rozwiązać ten problem?
Al Riddoch,
Odpowiedzi:
41
Włóż to .gitignore. Ale ze strony podręcznika gitignore(5):
·If the pattern does not contain a slash /, git treats it as a shell
glob pattern and checks for a match against the pathname relative
to the location of the .gitignore file (relative to the toplevel of
the work tree ifnotfrom a .gitignore file).·Otherwise, git treats the pattern as a shell glob suitable for
consumption by fnmatch(3)with the FNM_PATHNAME flag: wildcards in
the pattern will not match a /in the pathname.For example,"Documentation/*.html" matches "Documentation/git.html" but not"Documentation/ppc/ppc.html"or"tools/perf/Documentation/perf.html".
Zatem podaj pełną ścieżkę do odpowiedniego *.pycwpisu lub umieść go w .gitignorepliku w dowolnym katalogu prowadzącym z katalogu głównego repozytorium (włącznie).
Żeby nie pomylić kogokolwiek innego, Ignacio interpretacja strony podręcznika jest błędna. Nie musisz umieszczać * .pyc w tym samym katalogu, wystarczy umieścić go w katalogu nadrzędnym (lub dziadku itp.).
Godsmith
@Godsmith: poprawione.
Ignacio Vazquez-Abrams
242
Powinieneś dodać linię z:
*.pyc
do .gitignorepliku w folderze głównym drzewa repozytorium git zaraz po inicjalizacji repozytorium.
Jak powiedział ralphtheninja , jeśli zapomniałeś to zrobić wcześniej, jeśli po prostu dodasz linię do .gitignorepliku, wszystkie wcześniej zatwierdzone .pycpliki będą nadal śledzone, więc będziesz musiał usunąć je z repozytorium.
Jeśli korzystasz z systemu Linux (lub „rodziców i synów”, takich jak MacOSX), możesz to szybko zrobić za pomocą tego jednego wiersza polecenia, które musisz wykonać z katalogu głównego repozytorium:
find .-name "*.pyc"-exec git rm -f "{}" \;
To po prostu oznacza:
zaczynając od katalogu, w którym aktualnie jestem, znajdź wszystkie pliki, których nazwa kończy się rozszerzeniem .pyc, i przekaż nazwę pliku do poleceniagit rm -f
Po *.pycusunięciu plików z gita jako plików śledzonych, zatwierdź tę zmianę w repozytorium, a następnie możesz ostatecznie dodać *.pyclinię do .gitignorepliku.
Alternatywnie, aby usunąć pliki z git i z lokalnego komputera, możesz po prostu zrobić to git rm --cached *.pycz katalogu najwyższego poziomu. Mam to stąd
Anupam,
Mam, że istnieje, ale po zatwierdzeniu plików .pyc i tak są one śledzone przez git, powinieneś je najpierw usunąć i zatwierdzić, jeśli masz je w repozytorium
Mahmoud Hboubati
84
Prawdopodobnie dodaje je do repozytorium przed wprowadzeniem *.pycw .gitignore.
Najpierw usuń je z repozytorium.
Jeśli chcesz globalnie ignorować pliki '.pyc' (tj. Jeśli nie chcesz dodawać linii do pliku .gitignore w każdym katalogu git), spróbuj wykonać następujące czynności:
Wzorce, które użytkownik chce, aby Git ignorował we wszystkich sytuacjach (np. Kopie zapasowe lub pliki tymczasowe generowane przez wybrany edytor użytkownika) zazwyczaj trafiają do pliku określonego przez core.excludesFile w pliku ~ / .gitconfig użytkownika.
Początkowe „**”, po którym następuje ukośnik, oznacza dopasowanie we wszystkich katalogach. Na przykład „** / foo” dopasowuje plik lub katalog „foo” w dowolnym miejscu, tak samo jak wzorzec „foo”. „** / foo / bar” dopasowuje plik lub katalog „bar” gdziekolwiek bezpośrednio w katalogu „foo”.
Zwróć uwagę, że jeśli używasz virtualenv, będziesz mieć kilka dodatkowych .pycplików w katalogu, w którym aktualnie się znajdujesz, które zostaną przechwycone przez jego polecenie find.
Odpowiedzi:
Włóż to
.gitignore
. Ale ze strony podręcznikagitignore(5)
:Zatem podaj pełną ścieżkę do odpowiedniego
*.pyc
wpisu lub umieść go w.gitignore
pliku w dowolnym katalogu prowadzącym z katalogu głównego repozytorium (włącznie).źródło
Powinieneś dodać linię z:
do
.gitignore
pliku w folderze głównym drzewa repozytorium git zaraz po inicjalizacji repozytorium.Jak powiedział ralphtheninja , jeśli zapomniałeś to zrobić wcześniej, jeśli po prostu dodasz linię do
.gitignore
pliku, wszystkie wcześniej zatwierdzone.pyc
pliki będą nadal śledzone, więc będziesz musiał usunąć je z repozytorium.Jeśli korzystasz z systemu Linux (lub „rodziców i synów”, takich jak MacOSX), możesz to szybko zrobić za pomocą tego jednego wiersza polecenia, które musisz wykonać z katalogu głównego repozytorium:
To po prostu oznacza:
Po
*.pyc
usunięciu plików z gita jako plików śledzonych, zatwierdź tę zmianę w repozytorium, a następnie możesz ostatecznie dodać*.pyc
linię do.gitignore
pliku.(na podstawie http://yuji.wordpress.com/2010/10/29/git-remove-all-pyc/ )
źródło
git rm --cached *.pyc
z katalogu najwyższego poziomu. Mam to stądPrawdopodobnie dodaje je do repozytorium przed wprowadzeniem
*.pyc
w.gitignore
.Najpierw usuń je z repozytorium.
źródło
próbuję użyć zdania z poprzedniego postu i nie działam rekurencyjnie, potem przeczytaj pomoc i uzyskaj tę linię:
pd jest konieczne, aby dodać * .pyc do pliku .gitignore, aby utrzymać git w czystości
Cieszyć się.
źródło
Jeśli chcesz globalnie ignorować pliki '.pyc' (tj. Jeśli nie chcesz dodawać linii do pliku .gitignore w każdym katalogu git), spróbuj wykonać następujące czynności:
[Źródła]
https://git-scm.com/docs/gitignore
Wzorce, które użytkownik chce, aby Git ignorował we wszystkich sytuacjach (np. Kopie zapasowe lub pliki tymczasowe generowane przez wybrany edytor użytkownika) zazwyczaj trafiają do pliku określonego przez core.excludesFile w pliku ~ / .gitconfig użytkownika.
Początkowe „**”, po którym następuje ukośnik, oznacza dopasowanie we wszystkich katalogach. Na przykład „** / foo” dopasowuje plik lub katalog „foo” w dowolnym miejscu, tak samo jak wzorzec „foo”. „** / foo / bar” dopasowuje plik lub katalog „bar” gdziekolwiek bezpośrednio w katalogu „foo”.
źródło
Dzięki @Enrico za odpowiedź.
Zwróć uwagę, że jeśli używasz virtualenv, będziesz mieć kilka dodatkowych
.pyc
plików w katalogu, w którym aktualnie się znajdujesz, które zostaną przechwycone przez jego polecenie find.Na przykład:
Przypuszczam, że usunięcie wszystkich plików jest nieszkodliwe, ale jeśli chcesz usunąć tylko
.pyc
pliki z głównego katalogu, po prostu zróbfind "*.pyc" -exec git rm -f "{}" \;
Spowoduje to usunięcie tylko
app.pyc
pliku z repozytorium git.źródło