Описание веток в git, продолжение

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

Я в основном работал над вопросом SO Как мне сказать git всегда выбирать мою локальную версию для конфликтующих слияний в конкретном файле?, но я столкнулся с ситуацией, когда пользовательский драйвер слияния не вызывается, поэтому файл из ветки слияния в тему перезаписывает локальную ветку. Например:

git checkout master
echo "mainline" > BRANCH_DESCRIPTION
git add BRANCH_DESCRIPTION
git commit -m'Added BRANCH_DESCRIPTION file'
git checkout -b topic_branch
echo "this branch is used to fix the bug where [...]" > BRANCH_DESCRIPTION
git commit -m'Updated BRANCH_DESCRIPTION'
[code, code, code ...]
[git, git, git ...]
git checkout master
git merge --no-ff topic_branch

На этом этапе BRANCH_DESCRIPTION будет просто перезаписан, так как описание главной ветви не изменилось, независимо от того, был ли настроен драйвер слияния для файла.

Есть идеи?

2 ответа

Решение

Попробуйте использовать git notes для этого.

In your branch do git notes add -m "this branch is for blah blah"

Then write a post-commit in your repo with the following:

#!/bin/sh
git notes show HEAD~1
git notes copy HEAD~1 HEAD

Additionally add a git notes remove HEAD~1 если ты хочешь.

использование git notes show to see what the branch is for.

Git теперь поддерживает это, запустив git branch --edit-description

Этот ответ имеет хорошую рецензию

Другие вопросы по тегам