gitignore po commicie
Mam repozytorium git hostowane na Githubie. Po zatwierdzeniu wielu plików zdaję sobie sprawę, że muszę utworzyć .gitignore
i wykluczyć .exe
, .obj
pliki.
Czy jednak automatycznie usunie te zatwierdzone pliki z repozytorium? Można to jakoś wymusić?
6 answers
Nie Nie możesz wymusić usunięcia pliku, który został już popełniony w repo tylko dlatego, że został dodany do .gitignore
Musisz git rm --cached
usunąć Pliki, których nie chcesz w repo. (--cached, ponieważ prawdopodobnie chcesz zachować lokalną kopię, ale usunąć z repo. ) Więc jeśli chcesz usunąć wszystkie exe z repo do
git rm --cached /\*.exe
(zauważ, że gwiazdka * jest cytowana z powłoki-pozwala to gitowi, a nie powłoce, rozwinąć ścieżki do plików i podkatalogi)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-06-30 13:51:47
Nie. Nawet z istniejącymCzy jednak automatycznie usunie te zatwierdzone pliki z repozytorium?
.gitignore
możesz ustawić "ignorowane" pliki za pomocą znacznika -f
(force). Jeśli pliki są już zatwierdzone, nie zostaną automatycznie usunięte.
git rm --cached path/to/ignored.exe
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-19 09:48:29
Musiałem usunąć .idea i foldery docelowe i po przeczytaniu wszystkich komentarzy To mi się udało:
git rm -r .idea
git rm -r target
git commit -m 'removed .idea folder'
A następnie wciśnij do master
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-04 12:44:53
Jeśli jeszcze nie przesunąłeś zmian:
git rm -r --cached .
git add .
git commit -m 'clear git cache'
git push
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-10 04:59:57
Nie.Czy jednak automatycznie usunie te zatwierdzone pliki z repozytorium?
'najlepszym' przepisem na to jest użycie git filter-branch
jak napisano tutaj:
Strona podręcznika git-filter-branch zawiera obszerne przykłady.
Notatka będziesz pisał historię na nowo. Jeśli opublikowałeś jakieś poprawki zawierające przypadkowo dodane pliki, może to spowodować problemy dla użytkowników tych publicznych oddziałów. Poinformuj ich, a może pomyśl o tym, jak bardzo musisz usunąć Pliki.
Uwaga w obecności znaczników Zawsze używaj opcji --tag-name-filter cat
do git filter-branch
. To nigdy nie boli i zaoszczędzi ci bólu głowy, gdy zdasz sobie sprawę, że później tego potrzebujesz
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-19 09:48:15
Nawet po usunięciu plików,a następnie zatwierdzeniu, nadal będziesz mieć te pliki w historii. Aby je usunąć, rozważ użycie BFG Repo-Cleaner. Jest alternatywą dla git-filter-branch.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-31 17:12:35