Машинный анализируемый метод сравнения текущей ветви с локальным представлением ветви отслеживания

Мне нужен машинный способ сравнения текущей ветви с локальной копией отслеживающей ветви.

Вот те идеи, которые я попробовал, с их оговорками:

  • статус git: не гарантируется, что он останется неизменным между различными версиями git
  • git status --porcelain: не выводит необходимую информацию
  • Сравните главу филиала с главой происхождения / филиала: Можем ли мы гарантировать, что отслеживающая ветвь находится на "источнике"?

Спасибо за любые идеи

1 ответ

Решение

Я думаю, что команда, которую вы ищете, это:

git rev-list HEAD..HEAD@{u}

В этом списке перечислены все SHA коммитов, которые находятся в ветви отслеживания, но не в вашей локальной ветви. rev-list это просто команда для перечисления ревизий и тому @{u} под названием ветки подразумевается "удаленная ветка трекинга этой ветки".

Другие вопросы по тегам