git中有一种方法可以为分支提供“描述”吗?虽然我尝试使用描述性名称,但在单个分支上工作一段时间有时会减弱我为什么创建其他主题分支的记忆。我尝试使用分支的描述性名称,但我认为'描述'(关于分支目的的简短说明)会很好。git中的分支描述
回答
Git 1.7.9支持这个。从1.7.9 release notes:
* "git branch --edit-description" can be used to add descriptive text to explain what a topic branch is about.
你可以看到在2011年9月推出回到这个功能,以提交6f9a332,739453a3,b7200e8:
struct branch_desc_cb {
const char *config_name;
const char *value;
};
--edit-description::
打开一个编辑器,编辑文本,以说明什么分支用于被其他各种命令使用(例如
request-pull
)。
请注意,它不适用于分离的HEAD分支。
该描述被脚本request-pull使用:请参阅commit c016814783,还可以使用git merge --log
。
request-pull
是用来概括到标准输出两次提交之间的变化的脚本,并且包括在所生成的概要给定的URL。
我很确定该功能当前不受支持。我认为你最好的选择是在分支中创建一个描述文本文件,一个README文件,它有你想要的信息。
我不得不担心(不)在跨分支合并此文件。我不是吗? – 2010-01-21 10:40:59
@KaspervandenBerg:也许只是留下评论而不是拔出-1张牌,然后等待一段时间,如果提问者不愿意改变帖子,但你看到他/她/它同时访问了这个网站, 把它拼出来。或者_you_定期检查你的答案,看看他们是否仍然正确? – 2012-08-15 08:12:02
@phresnel:好点;我的意图是帮助未来的这个问题的提问者,并且有良好的反应能力和不正确的反应能力,但并不是为了“惩罚”克里斯J并导致他失去声誉。不幸的是,该网站表示我的投票被锁定:(。 – 2012-08-15 10:26:38
的README
通过Chris J建议可以工作,只要它是建立一个custom merge driver defined in a .gitattribute
。
这样,本地版本的README
始终保留在合并期间。
分支的“描述”也被称为与该元数据关联的“注释”,并且不被支持。
至少,有README
文件,你可以为任何一间分行,做:
$ git show myBranch:README
如果你的自述是在你的REPO的根目录下,它会从任何路径工作,因为由使用的路径是来自所述回购的顶部目录的绝对路径。
团队中的每个人都必须意识到这一点,并将其设置在他们的.gitattribute中,如果他们想要它吗?如果是这样,在我看来,这将是难以管理的,并且实际上人们很可能会这样做。 – 2015-07-15 22:26:15
选定的答案似乎对我来说过分杀伤。我倾向于维护每个分支描述文件,这是一个普通的源代码控制文件,如master.txt
,dev.txt
等,如果有难以处理的数字或分支我会创建一个层次结构来更好地组织它。
然后你不得不担心将这些文件合并到其他分支,或者记得使用' git show master:dev.txt',它不比选择的答案简单。 – 2010-12-23 22:40:45
您可以将意见标签:
git tag -m 'this was a very good commit' tag1
按照惯例,你可以有与您的分支名称标签或者你可以使用标签-f保持注释标记在您的主题分支的头。
这是不理想的,因为它不跟踪分支的头部 – AndyL 2011-05-27 19:42:01
如果使用README做末起来,创建一个git alias修改git checkout
,使您的README显示每次转换分支的时间。
例如,在〜/的.gitconfig添加此,下[别名]
cor = !sh -c 'git checkout $1 && cat README' -
在此之后,可以运行git cor <branch_name>
切换分支和显示你是分支的自述切换到。
+1。这是一个很好的提示,但你不是指'.gitconfig'而不是'.gitignore'? – 2010-11-03 10:39:33
有趣的提示(不知道为什么它downvoted)。 +1 – VonC 2010-11-03 11:55:04
当人们没有理由地倒退时,我讨厌它。整个练习的重点要学习和提高。 – 2010-11-03 16:21:51
这里是一个可能实现的git branches
命令格雷格Hewgill提到的:
#!/usr/bin/perl
sub clean {
map { s/^[\s\*]*\s// } @_;
map { s/\s*$// } @_;
return @_;
}
sub descr {
$_ = `git config [email protected]_.description`;
s/\s*$//;
return $_;
};
sub indent {
$_ = shift;
s/^/ /mg;
return $_;
};
my @branches = clean `git branch --color=never --list`;
my %merged = map { $_ => 1 } clean `git branch --color=never --merged`;
for my $branch (@branches) {
my $asis = `git branch --list --color=always $branch`;
$asis =~ s/\s*$//;
print " $asis";
print " \033[33m(merged)\033[0m" if ($merged{$branch} and $branch ne "master");
print "\n";
print indent descr $branch;
print "\n";
print "\n";
}
使用git branch --edit-description
设置或编辑一个分支描述。
这是一个shell函数,用于显示类似于git branch
的分支,但附有说明。
# Shows branches with descriptions
function gb() {
branches=$(git for-each-ref --format='%(refname)' refs/heads/ | sed 's|refs/heads/||')
for branch in $branches; do
desc=$(git config branch.$branch.description)
if [ $branch == $(git rev-parse --abbrev-ref HEAD) ]; then
branch="* \033[0;32m$branch\033[0m"
else
branch=" $branch"
fi
echo -e "$branch \033[0;36m$desc\033[0m"
done
}
这里是gb
样子,此处显示为的情况下,文本图像腐烂:
$ gb
* logging Log order details. Waiting for clarification from business.
master
sprocket Adding sprockets to the parts list. Pending QA approval.
而作为一个图像,所以你可以看到的颜色:
使用:
git branch --list -v
显示上游分支:
git branch --list -vv
添加-r
只或-a
显示遥控器显示遥控器和本地
这些都很有用,我正在寻找一些自定义的东西。附有参考文件的某种说明。 – 2015-08-07 09:36:30
有两种流行的建议在这里:
git branch --edit-description
:我们不喜欢这个,因为你不能推它。也许我可以记住我创建的分支是做什么的,但我的团队肯定不能。README
file pr。科。这是合并时的一种痛苦:超级倾向于合并冲突,当我们合并特征分支时,我们将从分支中抽取README
。树枝之间的差异也是一种痛苦。
我们决定创建一个孤儿branches-readme
分支。孤儿分支机构是拥有自己独立历史的分支机构 - 您可以从Github的gh-pages
分支机构了解它们。这个孤儿分支包含一个单独的README
文件。它有像这样的内容:
master:
The default branch
mojolicious:
Start using Mojolicious
branch-whatever:
Description of the whatever branch
这是推和合并友好。从任何一间分行查看README
有:
git show branches-readme:README
缺点是,你需要签出怪异的孤儿分支,当你想更新README
和README
不作为分支机构获得改名不自动更新,来或去。不过,这对我们来说很好。
不喜欢它:
git checkout --orphan branches-readme
# All the files from the old branch are marked for addition - skip that
git reset --hard
# There are no files yet - an empty branch
ls
vi README
# put in contents similar to above
git add README
git commit -m "Initial description of the branches we already have"
git push origin branches-readme
# get all your original files back
git checkout master
与之相似,各个团队成员也可以创建自己的branches-$user
孤儿分支机构描述自己的私有分支,如果他们想,只要他们没有他们推到球队。
随着进一步的工具,这也可以与git branch
的输出集成。为此,或许可以考虑README.yaml
文件而不是简单的README
。
只有*可以*拥有master中的自述文件。这会增加混乱,但始终可以访问。 – 2017-07-11 12:14:27
@ PeterA.Schneider:当然,但是然后添加一个新的分支需要一个提交,即使这个改变与master没有任何关系。另外,当分离主人时,你将在所有分支中有一份自述文件,这是一团糟。 – 2017-07-12 04:32:42
git config --global --add alias.about '!describe() { git config branch."$1".description; }; describe'
命令将定义一个全局选项alias.about
作为shell表达式。在存储库中运行git about <branch>
将显示分支的说明(如果设置)。
谢谢!我改变了它,所以它只是看着我在 - “”!(描述)()(git配置分支。“$(git符号ref -short -q HEAD)\”。描述;}描述“' – aug 2017-03-23 23:40:32
@aug - 我需要在参数引号前面放置反斜杠以使其起作用:'git config --global --add alias.about'!describe(){git config branch。”$(git symbolic-ref --short -q HEAD)“。描述; }; describe'' – 2017-04-26 13:40:55
只需使用:
git config branch.<branch name>.description
要给予信贷,信贷是由于: https://glebbahmutov.com/blog/git-branches-with-descriptions/
这是在添加问题后发布的git版本中添加的。接受的答案提到了这一点。 – 2017-11-27 15:17:48
啊是的。它在评论中被提及。 – 2017-11-28 13:45:02
- 1. git中的分支描述,继续
- 2. 如何检索Git分支的描述?
- 3. Git颜色 - 分支描述文本
- 4. git分支概述
- 5. 打印分支描述
- 6. 还原分支更改git的标记名称描述
- 7. git - 将分支描述推送到远程
- 8. 是否可以向Git分支添加描述性标签?
- 9. 描述Git符号
- 10. 查看分支机构(git樱桃)与描述之间的提交?
- 11. 如何在git中添加长描述
- 12. 在libgit2中执行git描述
- 13. VSTS 2015 Git Pull请求描述不支持降价
- 14. 分享脸书的描述
- 15. 获取Git存储库的描述
- 16. Git上的扩展描述文本
- 17. Git描述给出不同的标签
- 18. 在git中创建分支的分支?
- 19. 支持的文化和市场描述
- 20. pom.xml中<build>部分的描述?
- 21. 将git描述为shell变量
- 22. git-diff如何生成大块描述?
- 23. git回购描述不更新
- 24. 产品描述部分
- 25. 区分标题与描述
- 26. git分支(没有分支)
- 27. 如何在Git中分支分支?
- 28. Git vs Mercurial中的分支
- 29. xcode中的Git(no分支)
- 30. 删除git中的分支
你为什么不按你的想法命名分支?林不知道,但一个功能应该描述在一个复合词 – fyr 2011-07-20 12:16:22
这将是一个非常有用的功能。 git分支-a可以显示分支名称旁边的描述。也许git笔记将支持分支的注释以及未来的提交? – jhabbott 2011-10-31 13:55:31
我有一个[类似的问题](http://stackoverflow.com/questions/1876142/git-how-to-keep-a-file-common-across-all-branches)。我使用该文件来记录分支,以及它们为什么存在(等等)。 – themis 2010-01-23 01:13:27