Am un depozit git ca's a folosit doar pentru a ține grafică și fișiere de sunet utilizate în mai multe proiecte. Acestea sunt toate într-un singur director, fără sub-directoare. Acum am creat un script pentru a copia aceste active față de altul, director structurate, cu mai multe niveluri de sub-directoare.
Acum vreau doar (sursa) ierarhice structura de fișiere pentru a fi urmărite de git, și (țintă) plat director (cu toate fișierele într-un singur teanc) ar trebui să fie ignorate.
Am'am adăugat directorul țintă pentru .gitignore, dar git este încă urmărire modificări în ea. Am crezut că dacă am comis-eliminarea din vechiul fișier în directorul țintă, git s-ar putea opri urmărirea noi conținuturi (copiate de script-ul), dar nu't.
Cum pot face git uita de directorul țintă?
Această comandă va provoca git la untrack directorul și toate fișierele în fapt, fără a le șterge:
git rm -r --cached <directorul>
-R
opțiune determină eliminarea toate fișierele în directorul dumneavoastră.
La --cached
opțiune determină fișiere pentru a fi eliminate de la git's index, nu copia de lucru. În mod implicit git rm <fișier>
ar șterge <fișier>
.
Dacă aveți nevoie pentru a avea o urmărite de fișier (verificat), dar nu doriți să urmăriți în continuare modificări de-un fișier în timp ce menținându-l în depozit local, precum și în depozitul de la distanță, acest lucru poate fi făcut cu:
git update-index --assume-unchanged path/to/file.txt
După aceea, orice modificare a acestui fișier va mai apărea în git status
.
Nu sunt sigur daca asta conteaza sau ma face o persoana rea, dar aici merge.
*Generate*
la rădăcină .gitignore fișierdir *.CheckedIn -Recurse | %{ copia $_.FullName "$($_.FullName)".Înlocui("CheckedIn","") -EA SilentlyContinue}
Mă simt un pic rău. dar nu în munca de fapt.
Ok, se pare că trebuie să facem mai întâi un check-in cu directorul complet gol (nici vechi, nici noi fișiere), și toate fișierele adăugate ulterior vor fi ignorate. Dacă eliminați fișierele vechi adăuga și altele noi înainte de a comite, cele noi sunt adăugate la repo, deși acestea ar trebui să fie ignorate.
Cel puțin, aceasta a lucrat pentru mine în această situație. Ar fi minunat daca cineva ar putea oferi o perspectivă mai mult pe ceea ce's întâmplă.