Определение коммитов, которые были сделаны на ветке - PullRequest
0 голосов
/ 11 октября 2018

У меня есть ветвь функций - давайте назовем ее featureX' Когда я ее разрабатываю - я создаю несколько коммитов, отправляю их на сервер, тестирую - еще несколько коммитов и т. Д. ... Когда позже я объединю эту ветку сmaster - я хочу увидеть в истории, какие коммиты были частью этой featureX ветви до того, как они были зафиксированы в master.

В настоящее время мой способ - не забывать добавлять это в комментарий всякий раз, когда я фиксирую - ноЯ ленивый и не всегда помню, как это сделать.

Есть ли способ пометить эти коммиты или автоматически добавить к их комментариям префикс с именем ветки?

Я используюGit в Visual Studio, используя его пользовательский интерфейс

Ответы [ 2 ]

0 голосов
/ 11 октября 2018

Вы можете использовать настройку commit.template, как описано здесь .

$ git config commit.template /path/to/git-commit-template.txt

Это установит шаблон только для текущего репозитория.Вы можете добавить флаг --global для применения ко всем репозиториям.

ПРИМЕЧАНИЕ: это будет для всех коммитов, а не только для ветви featureX, поэтому после того, как вы закончите работу над этой веткой, вам нужноотредактировать шаблон.

Кроме того, если вы забыли добавить название ветки в комментарии, вы можете проверить здесь как узнать после слияния, которое фиксирует, включает в веткудо слияния.

0 голосов
/ 11 октября 2018

Да, есть способ автоматически добавлять префикс с названием ветки в свои комментарии.Его можно получить с помощью крючка commit-msg.Например, если вы запишите этот код в файл .git/hook/commit-msg:

#!/bin/bash
current_branch="$(git rev-parse --abbrev-ref HEAD)"
echo '['"$current_branch"'] '$(cat "$1") > "$1"

Все ваши сообщения коммитов будут автоматически иметь префикс "[branch_name]".

EDIT:

Мне действительно удалось написать тот же сценарий для Windows

В файле с именем .git/hooks/commit-msg.bat напишите этот код (который почти эквивалентен трем строкам выше):

@echo off

FOR /F "tokens=* USEBACKQ" %%F IN (`git rev-parse --abbrev-ref HEAD`) DO (
SET current_branch=%%F
)

FOR /F "tokens=* USEBACKQ" %%F IN (`type .git\COMMIT_EDITMSG`) DO (
SET commit_msg=%%F
)
SET p_commit_msg=[%current_branch%] %commit_msg%
ECHO %p_commit_msg% > .git\COMMIT_EDITMSG

В файле .git/hooks/commit-msg назовите этот скрипт так:

#!/bin/bash
cmd.exe /c "commit-msg.bat"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...