Nu au deja un proiect Visual Studio în depozit. Recent am adăugat-o .gitignore fișier în proiectul meu și am să presupunem că spune Git pentru a ignora fișierele listate în fișierul.
Problema mea este ca toate aceste fișiere sunt deja urmărită și în măsura în care știu Git nu va ignora un fișier care a fost deja urmărit înainte de o regulă a fost adăugat la acest fișier pentru a-l ignore.
S-a sugerat să utilizați: `git rm --cached și manual onu-le urmări, dar care's de gând să mă ia pentru totdeauna pentru a merge prin ele, unul câte unul.
M-am gândit la ștergerea magaziei și recreând-o din nou dar de data asta cu .gitignore fișier prezent, dar trebuie să existe o modalitate mai bună de a face acest lucru.
Acest răspunde mi-a rezolvat problema:
Mai întâi de toate, comite toate modificările în așteptare.
Apoi executați această comandă:
git rm -r --cached .
Astfel, se elimină tot din index, apoi executați doar:
git add .
Comite:
git commit -m ".gitignore is now working"
A crea o .gitignore fișier, astfel încât pentru a face asta, trebuie doar să creați orice gol .fișier txt.
Apoi trebuie să-și schimbe numele scris următoarea linie pe cmd (unde git.txt` este numele fișierului'am creat doar):
redenumi git.txt .gitignore
``
Sistemul de OPERARE fișierele nedorite [Tt]humbs.db *.DS_Store
.[Oo]bj .utilizator .aps .pch .vspscc .vssscc _i.c _p.c .bcn .suo .tlb .tlh .bak .[Cc]durere .ilk .jurnal .lib .sbr .sdf .pyc .xml ipch/ obj/ [Bb]în [Dd]ebug/ [Rr]erich*/ Ankh.NoLoad
_ReSharper/ .resharper [Tt]est[Rr]esult*
[Bb]uild/
.svn
~$*
Nu's o întreagă colecție de utile .gitignore fișiere de GitHub
Odată ce aveți acest lucru, aveți nevoie pentru a adăuga la depozit git la fel ca orice alt fișier, numai că trebuie să fie în rădăcina de depozit.
Apoi, în terminalul trebuie să scrie următoarea linie:
git config --principale la nivel global.excludesfile ~/.gitignore_global
De la oficial doc:
puteți crea, de asemenea, un nivel global .gitignore fișier, care este o listă de reguli pentru a ignora fișierele în fiecare depozit Git pe computer. Pentru de exemplu, s-ar putea crea fișierul de la ~/.gitignore_global și se adaugă câteva reguli.
Deschide Terminal. Executați următoarea comandă în terminal: git config --principale la nivel global.excludesfile ~/.gitignore_global
Dacă respository există deja, atunci trebuie să executați aceste comenzi:
git rm -r --cache . git add . git commit -m ".gitignore este acum de lucru"
Dacă la pasul 2 nu´t de lucru, atunci ar trebui să scrie gaura traseul de fișiere pe care doriți să o adăugați.
După cum se specifică aici puteți actualiza indexul:
git update-index --assume-unchanged /path/to/file
Făcând acest lucru, fișierele nu vor apărea în git status " sau " git diff
.
Pentru a începe urmărirea fișierelor puteți rula:
git update-index --no-assume-unchanged /path/to/file
Dacă ați adăugat ta `.gitignore prea târziu, git va continua să urmărească comis deja fișiere, indiferent. Pentru a rezolva acest lucru, puteți să scoateți întotdeauna toate cache cazuri de fișiere nedorite.
În primul rând, pentru a verifica care fișiere sunt de fapt de urmărire, puteți rula:
git ls-copac-numele-numai-full-copac -r CAP
Să zicem că ai găsit nedorite fișiere într-un director ca `cache/ deci's mai sigur la țintă ca director în loc de toate fișierele.
Deci, în loc de:
git rm -r --cached .
L's mai sigur la țintă alt fișier sau director:
git rm -r --cache cache/
Apoi continua pentru a adăuga toate modificările,
git add .
și comite...
git commit -m ".gitignore este acum de lucru"
Referință: https://amyetheredge.com/code/13.html
Aici este o modalitate de a "untrack" orice fișiere care sunt altfel ar fi ignorat sub actualul set de exclude modele:
(GIT_INDEX_FILE=some-non-existent-file \
git ls-files --exclude-standard --others --directory --ignored -z) |
xargs -0 git rm --cached -r --ignore-unmatch --
Acest lucru lasă fișierele din directorul de lucru, dar le elimină din index.
Trucul folosit aici este de a oferi un non-existent fișier index la git ls-fișiere, astfel încât se crede că nu sunt urmărit de fișiere. Coajă codul de mai sus cere toate fișierele care ar fi ignorat în cazul în care indicele erau goale și apoi le elimină din efectiv index cu git rm.
După ce fișierele au fost "neidentificată", folosiți git status pentru a verifica că nimic important nu a fost eliminat (dacă așa ajusta exclude modele și de a folosi git reset -- cale de a restabili eliminat intrare index). Apoi face un nou comite că pleacă de la "crud".
La "crud" va fi în continuare în orice comite. Puteți folosi git filtru-ramură a produce curat versiunile vechi se angajează dacă ai într-adevăr nevoie de o istorie curat (n.b. folosind git filtru-filiala va "rescrie istoria", așa că nu ar trebui să fie tratate cu ușurință dacă aveți orice colaboratori care au scos orice istorice se angajează după "crud" a fost introdus pentru prima dată).
Cred că aceasta este o modalitate ușoară pentru a adăuga un .gitignore fișier la un depozit existent.
Condiție:
Ai nevoie de un browser pentru a accesa contul github.
Etape
Distreaza-te!
Folosesc git curat` Obține ajutor de la acest execută
git clean -h
Dacă doriți să vedeți ce se va întâmpla în primul rând, asigurați-vă că pentru a trece -n comutator pentru un test:
git clean -xn
Pentru a elimina gitingnored gunoi
git clean -xdf
Atenție: poate fi ignorat locale config fișiere, cum ar fi baza de date.yml care ar fi, de asemenea, eliminate. Utilizați pe propriul risc.
Apoi
git add .
git commit -m ".gitignore is now working"
git push