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