Как увидеть неслитые коммиты в ветке emacs magit

Поэтому, когда я создаю и переключаюсь на новую ветку, отличную от MASTER, я больше не вижу список неотправленных коммитов. Я думаю, это имеет смысл, так как я нахожусь в ветке, а MASTER теперь мой апстрим (вместо github)?

Тем не менее, я хотел бы иметь возможность увидеть что-нибудь обо всех коммитах, которые я сделал сегодня.

Как просмотреть все коммиты, сделанные мной в локальной ветке, которые еще не были объединены с MASTER?

Хорошо, учитывая это, как мне настроить magit так, чтобы всякий раз, когда я нахожусь в ветке и ввожу M-x magit-status, я видел список неслитых коммитов, которые я сделал в этой ветке? Что-то похожее на то, как когда я нахожусь на MASTER и ввожу M-x magit-status, я получаю список всех неотправленных коммитов?

В основном пустой буфер магит-статуса заставляет меня нервничать, когда я нахожусь на ветке. :)


person Stephen Cagle    schedule 03.07.2014    source источник
comment
Создание и переключение на новую ветку абсолютно ничего не делает для вашего восходящего потока. master в этот момент не является вашим восходящим потоком, и, насколько я знаю, Git не имеет понятия восходящих ветвей. Как упоминает juanleon ниже, причина, по которой вы не видите невыполненные коммиты, заключается в том, что ваша новая ветка не настроена на отслеживание удаленной ветки.   -  person Chris    schedule 03.07.2014
comment
@ Крис, пожалуйста, преврати это в ответ, а не в комментарий.   -  person tarsius    schedule 29.07.2014


Ответы (2)


Если ваша ветка отслеживает удаленную ветку, вы автоматически получите это.

Если нет, и вы заинтересованы в мастере, вы можете использовать код ниже. Этот код добавит ваш магит-статус в новый раздел «Необъединенные коммиты» всякий раз, когда у вас есть коммиты не в мастере.

(eval-after-load 'magit
  '(progn
     (defun magit-insert-unmerged-commits ()
       (magit-git-insert-section (unmerged "Unmerged commits:")
                                 (apply-partially 'magit-wash-log 'unique)
                                 "log" "--format=format:%h %s" "master..HEAD"))

     (magit-define-section-jumper unmerged  "Unmerged commits")

     (add-hook 'magit-status-sections-hook 'magit-insert-unmerged-commits t)))

Вам понадобится magit 2.0 или выше.

Если вас не интересуют коммиты, объединенные не с мастером, а с локальной веткой, где вы разветвили свою ветку, вам потребуется дальнейшая настройка приведенного выше кода (я жестко запрограммировал «мастер»).

person juanleon    schedule 03.07.2014

Если вы просто хотите увидеть неотправленные коммиты, добавьте

(setq magit-set-upstream-on-push t)

в ваш файл инициализации, и magit спросит вас, хотите ли вы set upstream при отправке -- просто введите "yes" при отправке в первый раз, и вас больше не спросят. Затем вы увидите неотправленные коммиты.

Документация для magit-set-upstream-on-push:

Может ли `magit-push' устанавливаться вверх по течению при отправке ветки. Это применимо только в том случае, если в ветке еще нет восходящего набора.

nil не используйте --set-upstream.

t спросите, следует ли использовать --set-upstream.

`dontask' всегда используйте --set-upstream.

`refuse' отказывается от отправки, если удаленная ветвь уже не установлена.

person TooTone    schedule 10.02.2015