проверить, находится ли git commit в текущем рабочем дереве - PullRequest
0 голосов
/ 11 ноября 2011

Мне было интересно, есть ли команда git, чтобы увидеть, есть ли конкретный коммит в текущем рабочем дереве. У меня есть знак конкретного коммита. Мне нравится знать, является ли этот коммит коммитом, выполненным другим пользователем в другом рабочем дереве, или это коммит, который новее, чем текущий HEAD моего рабочего дерева.

Причина, по которой я хочу это сделать, заключается в том, что у нас настроен сервер Jenkins и регулярно выполняются сборки, но я хочу протестировать последнюю сборку, чтобы убедиться, что она такая же, как у моего HEAD, или она более старая коммит или если это коммит, сделанный кем-то другим.

1 Ответ

2 голосов
/ 11 ноября 2011

Я думаю, что «в текущем рабочем дереве» вы должны иметь в виду «в истории HEAD».

Чтобы выполнить описанные вами тесты с учетом SHA1sum S, вы можете сделать следующее:

  • Чтобы узнать, совпадает ли S с вашим HEAD, сравните git rev-parse --verify S с git rev-parse --verify HEAD
  • В противном случае, чтобы увидеть, является ли это коммитом в историиHEAD, вы можете сравнить git merge-base S HEAD с git rev-parse --verify S.Если они одинаковы, то S является предком HEAD.
  • Чтобы увидеть, является ли это коммитом "сделанным кем-то другим", вам нужно сравнить авторов двух коммитов, которые выможно сделать, сравнив git show -s --pretty='%an <%ae>' HEAD и git show -s --pretty='%an <%ae>' S
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...