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ć?

Author: liamvictor, 2011-06-30

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)

 265
Author: manojlds,
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

Czy jednak automatycznie usunie te zatwierdzone pliki z repozytorium?

Nie. Nawet z istniejącym .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
 27
Author: KingCrunch,
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

 6
Author: Emanuele,
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
 6
Author: slal,
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

Czy jednak automatycznie usunie te zatwierdzone pliki z repozytorium?

Nie.

'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

 5
Author: sehe,
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.

 1
Author: Ash,
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