Jak mogę usunąć.DS przechowuje pliki z repozytorium Git?
Jak mogę usunąć te irytujące pliki Mac OS X .DS_Store
z repozytorium Git?
22 answers
Usuń istniejące pliki z repozytorium:
find . -name .DS_Store -print0 | xargs -0 git rm -f --ignore-unmatch
Dodaj wiersz
.DS_Store
Do pliku .gitignore
, który można znaleźć na najwyższym poziomie repozytorium (lub utworzyć, jeśli jeszcze go nie ma). Możesz to zrobić łatwo za pomocą tego polecenia w górnym katalogu
echo .DS_Store >> .gitignore
Then
git add .gitignore
git commit -m '.DS_Store banished!'
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
2018-05-09 23:59:00
Łączenie odpowiedzi benzado i webmata, aktualizowanie za pomocą git rm
, nie zawodzenie na znalezionych plikach, których nie ma w repo, i zrobienie z nich wklejania ogólnego dla każdego użytkownika:
# remove any existing files from the repo, skipping over ones not in repo
find . -name .DS_Store -print0 | xargs -0 git rm --ignore-unmatch
# specify a global exclusion list
git config --global core.excludesfile ~/.gitignore
# adding .DS_Store to that list
echo .DS_Store >> ~/.gitignore
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-07-14 23:42:43
Najlepszym rozwiązaniem na rozwiązanie tego problemu jest globalne ignorowanie tych plików ze wszystkich repozytoriów git w Twoim systemie. Można to zrobić, tworząc globalny plik gitignore, taki jak:
vi ~/.gitignore_global
Dodawanie reguł ignorowania plików typu:
# Compiled source #
###################
*.com
*.class
*.dll
*.exe
*.o
*.so
# Packages #
############
# it's better to unpack these files and commit the raw source
# git has its own built in compression methods
*.7z
*.dmg
*.gz
*.iso
*.jar
*.rar
*.tar
*.zip
# Logs and databases #
######################
*.log
*.sql
*.sqlite
# OS generated files #
######################
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db
Teraz dodaj ten plik do globalnej konfiguracji git:
git config --global core.excludesfile ~/.gitignore_global
Edit:
Usunięto ikony, ponieważ mogą wymagać zaangażowania jako zasoby aplikacji.
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
2013-09-16 08:58:05
W niektórych sytuacjach możesz zignorować niektóre pliki na całym świecie. Dla mnie, .DS_Store jest jednym z nich. Oto jak:
git config --global core.excludesfile /Users/mat/.gitignore
(lub dowolny wybrany przez Ciebie Plik)
Następnie Edytuj plik tak jak repo .gitignore. Zauważ, że myślę, że musisz użyć ścieżki absolutnej.
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-08-01 20:46:37
Musiałem zmienić git-RM na git rm w powyższym aby go uruchomić:
find . -depth -name '.DS_Store' -exec git rm --cached '{}' \; -print
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
2013-09-04 18:32:55
Jeśli nie możesz usunąć plików, ponieważ mają zmiany, użyj:
git rm --cached -f *.DS_Store
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
2016-08-11 21:14:25
Otwórz terminal i wpisz "cd "
Usuń istniejące pliki:
find . -name .DS_Store -print0 | xargs -0 git rm -f --ignore-unmatch
nano .gitignore
Dodaj to
.DS_Store
-
Wpisz "ctrl + x"
-
Typ " y "
-
Wpisz aby zapisać plik
git add .gitignore
git commit -m '.DS_Store removed.'
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
2016-11-24 10:03:15
Usuń je za pomocą git-rm
, a następnie dodaj .DS_Store do .gitignore
, aby zatrzymać ich dodawanie ponownie. Możesz również użyć blueharvest , aby powstrzymać ich tworzenie razem
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
2008-09-20 10:05:35
Top voted answer is awesome, but helping out the rookies like me, here is how to create the .plik gitignore, edytuj go, Zapisz, Usuń pliki, które mogłeś już dodać do gita, a następnie wypchnij plik do Github.
Stwórz ... plik gitignore
Aby utworzyć .plik gitignore, możesz po prostu touch
plik, który tworzy pusty plik o podanej nazwie. Chcemy utworzyć plik o nazwie .gitignore, więc możemy użyć polecenie:
touch .gitignore
Ignoruj pliki
Teraz musisz dodać linię, która mówi gitowi, aby zignorował pliki DS Store do twojego .gitignore. Możesz użyć edytora nano do tego celu.
nano .gitignore
Nano jest ładne, ponieważ zawiera instrukcje, jak się z niego wydostać. (Ctrl-O aby zapisać, Ctrl-X to exit)
Skopiuj i wklej kilka pomysłów z tego Github gist który wymienia niektóre wspólne pliki do zignorowania. Najważniejsze, aby odpowiedzieć na to pytanie, to:
# OS generated files #
######################
.DS_Store
.DS_Store?
# są komentarzami i pomogą Ci uporządkować plik w miarę jego wzrostu.
Ten artykuł Githuba ma również kilka ogólnych pomysłów i wytycznych.
Usuń pliki już dodane do git
Wreszcie, musisz faktycznie usunąć te pliki ze sklepu DS z katalogu.
Użyj tej wspaniałej komendy z góry głosowanej odpowiedzi. To przejdzie przez wszystkie foldery w Twoim katalogu i usuń te pliki z Gita.
find . -name .DS_Store -print0 | xargs -0 git rm -f --ignore-unmatch
Przyj .gitignore up to Github
Ostatni krok, musisz rzeczywiście zaangażować swój .plik gitignore.
git status
git add .gitignore
git commit -m '.DS_Store banished!'
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-31 06:41:27
Następujące zadziałały najlepiej dla mnie. Obsługiwane niezrównane pliki i pliki z lokalnymi modyfikacjami. Dla porównania, było to na systemie Mac 10.7 z systemem git 1.7.4.4.
Znajdź i usuń:
find . -name .DS_Store -print0 | xargs -0 git rm --ignore-unmatch -f
Ja też ignoruję .DS_Store we wszystkich repozytoriach, ustawiając globalny rdzeń.excludesfile.
Najpierw Utwórz plik (jeśli jeszcze nie istnieje):
touch ~/.gitignore
Następnie dodaj następujący wiersz i zapisz:
.DS_Store
Teraz skonfiguruj git tak, aby respektował plik "globalnie": {]}
git config --global core.excludesfile ~/.gitignore
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-09-28 00:52:59
Znalazłem, że następujący wiersz z snippl najlepiej sprawdza się przy wycieraniu wszystkich .DS_Store, w tym taki, który ma lokalne modyfikacje.
find . -depth -name '.DS_Store' -exec git-rm --cached '{}' \; -print
-- cached option, keeps your local .DS_Store ponieważ i tak będzie powielany.
I tak jak wspomniano powyżej, dodać .DS_Store do .plik gitignore w katalogu głównym Twojego projektu. Wtedy nie będzie już w twoich oczach (repo).
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
2009-07-22 04:34:18
Użyj tego polecenia, aby usunąć istniejące pliki:
find . -name '*.DS_Store' -type f -delete
Następnie dodaj .DS_Store
do .gitignore
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-02-18 03:05:34
Jestem trochę spóźniony na imprezę, ale mam dobrą odpowiedź. Aby usunąć .Pliki DS_Store, użyj następujących poleceń z okna terminala, ale bądź bardzo ostrożny usuwając pliki za pomocą 'find'. Użycie konkretnej nazwy z opcją-name jest jednym z bezpieczniejszych sposobów jej użycia:
cd directory/above/affected/workareas
find . -name .DS_Store -delete
Możesz pominąć "- delete", jeśli chcesz po prostu wymienić je przed i po. To cię upewni, że ich nie ma.
W odniesieniu do~/.gitignore_global: uważaj tutaj. Chcesz aby umieścić ten ładny plik w .gitignore w najwyższy poziom każdego obszaru roboczego i zatwierdź go, aby każdy, kto sklonuje Twój repo, zyskał korzyści z jego użycia.
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-12-25 06:00:53
Z jakiegoś powodu żaden z powyższych nie działał na moim Macu.
Moje rozwiązanie pochodzi z terminala
rm .DS_Store
Then
git pull origin 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
2013-04-10 09:06:36
Podczas inicjalizacji repozytorium pomiń polecenie git zawierające
-u
I to nie powinno być problemem.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
2014-04-30 15:08:49
To mi się udało, zestawienie dwóch odpowiedzi z góry:
- $ git RM --cached-f*.DS_Store
- $ git commit-m " filter-branch --index-filter 'git RM --cached -- ignoruj-unpatch .DS_Store "
- $ git push origin master --force
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-28 16:16:38
To zadziała:
find . -name "*.DS_Store" -type f -exec git-rm {} \;
Usuwa wszystkie pliki, których nazwy kończą się na .DS_Store
, w tym ._.DS_Store
.
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
2018-01-06 17:28:48
W przypadku, gdy chcesz usunąć Pliki DS_Store do każdego folderu i podfolderu:
W przypadku już popełnionego DS_Store:
find . -name .DS_Store -print0 | xargs -0 git rm --ignore-unmatch
Ignoruj je przez:
echo ".DS_Store" >> ~/.gitignore_global
echo "._.DS_Store" >> ~/.gitignore_global
echo "**/.DS_Store" >> ~/.gitignore_global
echo "**/._.DS_Store" >> ~/.gitignore_global
git config --global core.excludesfile ~/.gitignore_global
$ git commit -m "filter-branch --index-filter 'git rm --cached --ignore-unmatch .DS_Store"
$ git push origin master --force
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-10-19 01:01:44
Istnieje kilka rozwiązań, aby rozwiązać ten problem. Aby uniknąć tworzenia .Pliki DS_Store, nie używaj programu OS X Finder do przeglądania folderów. Alternatywnym sposobem przeglądania folderów jest użycie uniksowej linii poleceń. Aby usunąć .Pliki DS_Store może być używany produkt innej firmy o nazwie DS_STORE Terminator. Aby usunąć .Pliki DS_Store z całego systemu można użyć polecenia powłoki Uniksa. Uruchom Terminal z aplikacji: narzędzia W wierszu polecenia powłoki UNIX wprowadź następujące polecenie UNIX: sudo find / - nazwa ".DS_Store " - depth-exec rm {} \; Po wyświetleniu monitu o podanie hasła wprowadź hasło administratora systemu Mac OS X.
Polecenie to ma na celu wyszukanie i usunięcie wszystkich wystąpień .DS_Store począwszy od głównego ( / ) systemu plików przez całą maszynę. Aby skonfigurować to polecenie do działania jako zaplanowane zadanie, wykonaj poniższe czynności: Uruchom Terminal z aplikacji: narzędzia W wierszu polecenia powłoki UNIX wprowadź następujące polecenie UNIX:
Sudo crontab-e Po wyświetleniu monitu o hasło wprowadź hasło administratora systemu Mac OS X. Raz w edytorze vi naciśnij raz literę I na klawiaturze i wpisz:
15 1 * * * root find / - name".DS_Store" - depth-exec RM {}\;
Nazywa się to wpisem crontab, który ma następujący format:
Polecenie Użytkownika Minute Hour DayOfMonth Month DayOfWeek.
Wpis crontab oznacza, że polecenie będzie wykonywane przez system automatycznie o godzinie 1:15 codziennie przez konto o nazwie root.
Komenda rozpoczyna się od find aż do . Jeśli system nie jest uruchomiony to polecenie nie zostanie wykonane.
Aby zapisać wpis naciśnij klawisz Esc raz, a następnie jednocześnie naciśnij Shift + z+Z.
Uwaga: informacje w kroku 4 dotyczą tylko edytora vi.
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
2012-08-01 09:54:05
Dodaj to do swojego pliku .gitignore
#Ignore folder mac
.DS_Store
Zapisz to i wykonaj commit
git add -A
git commit -m "ignore .DS_Store"
A teraz ignorujesz to dla wszystkich swoich commitów
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
2016-05-17 17:16:39
Usuń ignorowane Pliki:
(.DS_Store)
$ find . -name .DS_Store -print0 | xargs -0 git rm --ignore-unmatch
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
2018-03-02 10:10:31