Обновление: как упомянуто ниже от toupeira , вы можете использовать опцию --porcelain
git status (начиная с коммита 6f15787, сентябрь 2009 г., git 1.7 +0,0).
Я упомянул в своем ответе " Что означает термин" фарфор "в Git? ", что:
Возможно, значение --porcelain
здесь означает «производить продукцию, пригодную для потребления фарфоровыми сценариями»
Однако, это не будет отображать информацию о начале / сзади : см. « Что добавить к« git status --porcelain », чтобы он вел себя как« git status »?": для этого вам все равно придется использовать другие команды: см." Как узнать, есть ли в git-репозитории изменения, которые не были синхронизированы с сервером?"
Первоначальный ответ март 2009
В команде фарфора:
$ git diff HEAD
дает вам изменения с момента последнего коммита (что вы будете делать, если запустите "git commit -a").
Возможный эквивалент в сантехнической команде:
$ git ls-files -m
для отображения всех измененных (рабочий каталог или индекс) файлов
Если вы создаете свой репозиторий путем клонирования другого репозитория, удаленная «главная» ветка копируется в локальную ветку с именем «origin». Вы получаете свою собственную "главную" ветку, которая не привязана к удаленному хранилищу.
Всегда есть текущая голова, известная как ГОЛОВА. (На самом деле это символическая ссылка .git / HEAD на файл типа refs /head / master.)
запустить "git status" и проанализировать вывод:
# On branch master
# Your branch is ahead of 'origin/master' by 11 commits.
#
Подробнее в вопросе SO " Почему Git говорит мне" Ваша ветка опережает "origin / master" на 11 коммитов. "И как мне ее остановить? "
Возможный эквивалент в сантехнической команде:
* git-for-each-ref
для перечисления всех коммитов, но также требует анализа вывода ...
Опять же, git ls-файлы могут использоваться для получения того же результата, что и состояние git .
git ls-files --exclude-per-directory=.gitignore --exclude-from=.git/info/exclude \
--others \
--modified \
-t