2011-08-29 45 views
3

我一直在研究一个系统,以便在git中创建主题分支时保留BRANCH_DESCRIPTION文件。和其他人一样,我也有时忘记了我创建了一个分支,尽管我试图给它一个描述性的名字。git中的分支描述,继续

我一直主要关注SO问题How do I tell git to always select my local version for conflicted merges on a specific file?,但我遇到了自定义合并驱动程序未被调用的情况,因此合并的主题分支中的文件将覆盖本地分支。例如:

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只会被覆盖,因为如果自定义合并驱动程序已经设置该文件的主分支的描述并没有改变无关。

任何想法?

+0

什么是您存储在内容中是轨道分支说明什么道理呢? –

+0

我并不特别强调这个想法。其他SO问题http://stackoverflow.com/questions/2108405/branch-descriptions-in-git让我走在这个方向,所以我开始检查出来。我相信你暗指的是,这些信息比应该跟踪的内容更具元数据? – berto

回答

4

为此尝试使用git notes

在你的分支做git notes add -m "this branch is for blah blah"

然后写在你的回购具有以下提交后:

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

另外添加git notes remove HEAD~1如果你想。

使用git notes show来查看分支的用途。

+0

啊,很酷。我不知道git有这个功能,谢谢! – berto

+2

我一直在试验这个,并注意到使用“git reset”会失去注释。我猜git reset上的别名可以修复这种情况。 – berto

10

现在的Git运行支持此git branch --edit-description

这个答案有一个nice writeup

+2

虽然描述是本地的。你不能提交它。 – kzh