2014-11-25 5 views
1

Я отслеживаю проблему, когда пара транзакций, кажется, пропала без вести из ветки. Я затрудняюсь объяснить, что произошло, но нужно выяснить, есть ли какие-либо проблемы с обучением/процессом, которые необходимо повысить с помощью разработчиков.Как я могу проверить, была ли переписана история Git?

Ситуация: Была создана ветка признака, и некоторые ее совершили (пара изменений в файле javascript). Пришло время объединить ветвь функции обратно в мастер, но было обнаружено, что функция отсутствует. Первоначальный разработчик дал мне хеш фиксации, и я вижу его на github, и он утверждает, что находится на ветке признаков, но когда я смотрю на историю файла javascript на ветке, эти два коммита просто отсутствуют.

Кто-нибудь переписал историю филиала и удалил коммиты?

ответ

0

Если у вас есть хэши, вы всегда можете

git branch --contains 122345abcd 

где 12345abcd является хэш вам не хватает.

Кроме того, вы можете

git rev-list --all | grep 12345abcd 

Вы можете использовать

git log --cherry-mark --left-right --graph --oneline 12345abcd^...feature_branch 

для идентификации переписанных (вишня/нормированная) совершает между ветвями. См. Также https://www.kernel.org/pub/software/scm/git/docs/git-log.html

--cherry-mark 
Like --cherry-pick (see below) but mark equivalent commits with = rather than omitting them, and inequivalent ones with +. 

--cherry-pick 
Omit any commit that introduces the same change as another commit on the "other side" when the set of commits are limited with symmetric difference. 

For example, if you have two branches, A and B, a usual way to list all commits on only one side of them is with --left-right (see the example below in the description of the --left-right option). It however shows the commits that were cherry-picked from the other branch (for example, "3rd on b" may be cherry-picked from branch A). With this option, such pairs of commits are excluded from the output. 
Смежные вопросы