Как определить, когда ответвление Мерзавца было создано?

Существует ли способ определить, когда ответвление Мерзавца было создано? У меня есть ответвление в моем repo и и я не помню создавать его и мысль, возможно, видя, что создание установить метку времени подталкивало бы мою память.

297
задан paxos1977 24 July 2014 в 07:21
поделиться

3 ответа

Используйте

git show --summary `git merge-base foo master`

Если вы предпочитаете видеть это в контексте с помощью gitk, используйте

gitk --all --select-commit=`git merge-base foo master`

(где foo - имя ветки, которую вы ищете.)

Screenshot

141
ответ дан 23 November 2019 в 01:32
поделиться

Я пока не уверен в команде git для этого, но думаю, вы можете найти их в рефлогах.

.git/logs/refs/heads/<yourbranch>

Похоже, что в моих файлах есть временная метка unix.

Обновление: Похоже, есть возможность использовать историю рефлогов вместо истории коммитов при печати журналов:

git log -g

Вы можете проследить и этот журнал, начиная с момента создания ветки. git log показывает дату фиксации, однако, не дату, когда вы совершили действие, которое внесло запись в журнал. Я пока не нашёл этого, кроме как посмотрев в самом журнале по приведённому выше пути.

18
ответ дан 23 November 2019 в 01:32
поделиться

Во-первых, если ваша ветка была создана в течение gc.reflogexpire дней (по умолчанию 90 дней, то есть около 3 месяцев) ), вы можете использовать git log -g или git reflog show , чтобы найти первую запись в reflog, которая будет событием создания, и выглядит примерно так, как показано ниже ( for git log -g ):

Reflog: <branch>@{<nn>} (C R Eator <creator@example.com>)
Reflog message: branch: Created from <some other branch>

Вы можете узнать, кто создал ветку, сколько операций назад и из какой ветки (ну, это может быть просто «Создано из HEAD», что не помогите сильно).

Это то, что MikeSep сказал в своем ответе .


Во-вторых, если у вас есть ветка дольше, чем gc.reflogexpire , и вы выполнили git gc (или он запускался автоматически), вам нужно будет найти общего предка с ветка, из которой он был создан. Взгляните на файл конфигурации, возможно, там есть ветка . .запись merge , которая сообщит вам, на какой ветви она основана.

Если вы знаете, что рассматриваемая ветвь была создана из главной ветки (разветвление из главной ветки), например, вы можете использовать следующую команду, чтобы увидеть общего предка:

git show $(git merge-base <branch> master)

Вы также можете попробовать git show- ветка master в качестве альтернативы.

Это то, что gbacon сказал в своем ответе .

39
ответ дан 23 November 2019 в 01:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: