Описание веток в 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
Этот ответ имеет хорошую рецензию