Как отследить толчки GIT?Вы можете потерять / удалить коммиты? - PullRequest
2 голосов
/ 08 апреля 2019

Вот репо, над которым мы работаем как команда: https://github.com/hmcts/prd-pui-manager/pulls?q=is%3Apr+is%3Aclosed

Мы не понимаем, почему, когда мы снимаем мастер, мы не видим PR 45, 46 в журналах коммитов. https://github.com/hmcts/prd-pui-manager/pull/45 https://github.com/hmcts/prd-pui-manager/pull/46

Я запустил: git reflog и посмотрел, есть ли принудительный толчок, но ничего не показывает.

Имеет PR 48: https://github.com/hmcts/prd-pui-manager/pull/48 удален PR 45,46, если да, то как?

Есть ли способ отладки принудительного нажатия на мастер?

Я надеюсь, что смогу получить помощь в этом, так как некоторое время я пытаюсь понять, как отлаживать эти потоки. Я выполнил следующие шаги, чтобы попытаться отладить:

  • Возврат к каждой голове и просмотр кода - ничего

Когда PR 48 был объединен, в него были внесены изменения в PR 45, чтобы вернуть код, который был утерян, но я хочу выяснить, как мы потеряли два PR

Ответы [ 2 ]

1 голос
/ 08 апреля 2019

Журнал аудита GitHub

В GitHub есть журнал аудита для устранения таких проблем:

Документация: https://developer.github.com/v3/activity/events/

В вашем случае анализhttps://api.github.com/users/hmcts/events может раскрыть то, что вы ищете.Я просмотрел немного для PushEvent на refs/heads/master и для PullRequestEvents.Я не нашел вашего конкретного ответа, но с некоторыми копаниями вы могли бы выяснить это.

Потеря коммитов

Чтобы ответить на другую часть вашего вопроса,принудительный толчок - единственный способ потерять коммиты.

0 голосов
/ 08 апреля 2019

Чтобы устранить проблему, у вас все еще есть ветви, так что вы можете объединить их в master, чтобы получить ваши изменения.

В будущем я бы предложил применить следующее:

  • НИКОГДА не нажимайте master или любую другую общую ветвь,
  • принудительно отправлять могут только ветки, принадлежащие одному разработчику, только если разработчик знает, что он делает

Кроме того, в случае, если у вас больше нет веток, вы можете просматривать компьютеры разработчиков, сравнивать журналы и журналы и восстанавливать вашу ветку из разных мест (например, у dev 1 будет старая версия в его reflog, так что вы можете вытащить текущий мастер и объединить эту старую версию, которая была удалена, dev 2 будет иметь версию с принудительной версией и т. д.). Это утомительная задача, но это лучший способ восстановить потерянные данные.

...