Ce face git ls-files
git ls-files arată ce fișiere se află în index, adică ce va conține următorul commit. Este o comandă „de instalație” (plumbing), gândită pentru scripturi, dar foarte utilă și în terminal când vrei să știi exact ce urmărește Git.
Cu opțiuni poți afla ce fișiere sunt modificate (-m), care sunt noi și neurmărite (--others) sau care sunt ignorate de .gitignore (--ignored). Spre deosebire de git status, ieșirea are câte un fișier pe linie, ușor de trimis mai departe altor comenzi.
Opțiuni și argumente
| Opțiune / Parametru | Descriere |
|---|---|
-c, --cached |
Fișierele din index (comportamentul implicit). |
-m, --modified |
Fișierele urmărite care au modificări nesalvate. |
-d, --deleted |
Fișierele urmărite șterse din directorul de lucru. |
-o, --others |
Fișierele neurmărite. |
--exclude-standard |
Aplică regulile din .gitignore și .git/info/exclude (folosit cu -o sau -i). |
-i, --ignored |
Fișierele ignorate (cere -o sau -c și reguli de excludere). |
-s, --stage |
Afișează și modul, hash-ul obiectului blob și numărul de etapă. |
Exemple
Exemplul 1: Ce fișiere urmărește Git
Fișierul parole.txt este ignorat, iar nou.txt nu a fost adăugat, deci niciunul nu apare.
git init -q -b main proiect
cd proiect
git config user.name "Ana Popescu" && git config user.email "ana@exemplu.ro"
mkdir src
echo 'print("Salut, Iasi")' > src/main.py
echo 'parole.txt' > .gitignore
echo 'secret' > parole.txt
git add . && git commit -q -m "Start"
echo 'ciorna' > nou.txt
git ls-files
Rezultat
.gitignore
src/main.py
Exemplul 2: Fișiere modificate, neurmărite și ignorate
Trei întrebări diferite despre același director de lucru.
git init -q -b main proiect
cd proiect
git config user.name "Ana Popescu" && git config user.email "ana@exemplu.ro"
echo 'parole.txt' > .gitignore
echo 'Ana: 9' > note.txt
git add . && git commit -q -m "Start"
echo 'Ana: 10' > note.txt
echo 'secret' > parole.txt
echo 'ciorna' > nou.txt
echo "modificate:"; git ls-files -m
echo "neurmarite:"; git ls-files --others --exclude-standard
echo "ignorate:"; git ls-files --others --ignored --exclude-standard
Rezultat
modificate:
note.txt
neurmarite:
nou.txt
ignorate:
parole.txt
Exemplul 3: Numărarea fișierelor urmărite, pe tip
Ieșirea cu un fișier pe linie se combină ușor cu alte comenzi din terminal.
git init -q -b main site
cd site
git config user.name "Ana Popescu" && git config user.email "ana@exemplu.ro"
touch index.html contact.html stil.css app.js meniu.js
git add . && git commit -q -m "Site"
git ls-files '*.html' | wc -l | tr -d ' '
git ls-files '*.js'
Rezultat
2
app.js
meniu.js
Greșeli frecvente
- Confuzia cu
ls:git ls-filesnu arată ce e pe disc, ci ce e în index. Un fișier șters curmdar încă neconfirmat apare în continuare (vezi opțiunea-d). - Folosirea
--ignoredfără--exclude-standard(sau un alt--exclude): fără reguli de excludere comanda afișează o eroare.
Comenzi înrudite
git status: Afișează starea fișierelor: modificate, pregătite pentru commit (staged) sau neurmărite (untracked).git add: Adaugă modificările din directorul de lucru în zona de pregătire (staging area/index) pentru următorul commit.git grep: Caută un text sau o expresie regulată în fișierele urmărite de Git, în directorul de lucru sau în orice commit din istoric..gitignore: Fișier de configurare care specifică fișierele și directoarele ignorate intenționat de Git.