Git status - czy istnieje sposób na pokazanie zmian tylko w określonym katalogu?
Chciałbym zobaczyć listę plików zmodyfikowanych od ostatniego commita, jak pokazuje git status
, ale zależy mi tylko na plikach znajdujących się w jednym katalogu. Jest na to sposób? Próbowałem git status <directory>
, ale wygląda na to, że robi to coś zupełnie innego (wymienia wszystkie zmienione pliki, tak jak byłoby, gdybym najpierw napisał git add <directory>
).
Dokumentacja git-status niewiele mówi, poza faktem, że akceptuje te same opcje, co git-commit (ale celem git-commit nie jest Pokazywanie listy zmienionych plików).
4 answers
Z katalogu:
git status .
Możesz użyć dowolnej ścieżki, użyj tej składni:
git status <directoryPath>
Na przykład dla katalogu ze ścieżką "my / cool / path / here"
git status my/cool/path/here
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-03-02 08:01:39
Powodem, dla którego git status
przyjmuje te same opcje co git commit
, jest to, że celem git status
jest pokazanie, co by się stało, gdybyś zastosował te same opcje, co przekazałeś git status
. Pod tym względem git status
jest naprawdę git commit --preview
.
Aby uzyskać to, co chcesz, możesz zrobić to, co pokazuje zmiany:
git diff --stat --cached -- <directory_of_interest>
I to, co pokazuje zmiany:
git diff --stat -- <directory_of_interest>
Lub to, co pokazuje oba:
git diff --stat HEAD -- <directory_of_interest>
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-04-03 19:34:02
Najprostsze rozwiązanie:
- Przejdź do katalogu
git status | grep -v '\.\.\/'
Oczywiście to odrzuca kolory.
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-04-03 19:30:00
Jako uwaga, jeśli uprościsz sprawdzanie statystyk git bez przechodzenia do katalogu git;
### create file sudo nano /usr/local/bin/gitstat ### put this in #!/usr/bin/env bash dir=$1 if [[ $dir == "" ]]; then echo "Directory is required!" exit fi echo "Git stat for '$dir'." git --git-dir=$dir/.git --work-tree=$dir diff --stat ### give exec perm sudo chmod +x /usr/local/bin/gitstat
I wywołanie tego prostego skryptu: gitstat /path/to/foo-project
. Można go również używać w foo-project
po prostu robiąc gitstat .
, a więc przypuśćmy, że krótszy niż git status -s
, git diff --stat
lub git diff --stat HEAD
Jeśli zawsze używasz konsoli zamiast interfejsu graficznego.
Napisy:
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-23 10:31:26