什么是广泛使用的命名分支方法的例子 git?

我一直在使用本地存储库几个月 git, 与存储库交互式 CVS 我的组。我做了几乎是神经质的分支机构,大多数人都是哪个,幸运的是,幸运的是,融入了我的桶里。但命名开始成为一个问题。如果我有一项任务,很容易被称为一个简单的标记,但我在三个阶段执行它,每个阶段都包括自己的分支和合并的情况,然后我每次都可以重复分支的名称,但它使它成为故事有点令人困惑。如果我的名字中的更具体化,对于每个阶段的单独描述,分支的标题将开始变得漫长而笨重。

我真的通过在这里浏览旧流,我可以开始调用分支 A / 在名称中,项目是。 topic/task, 或类似的东西。 我可以开始这样做,看看它是否有助于更好地组织工作。

命名分支的一些建议是什么? git?

编辑:
没有人实际提供任何命名协议。
当我完成时,我真的删除了分支机构。 由于管理层不断调整我的优先事项,我刚刚有一些人。 :/
作为为什么它可能在任务中需要多个分支的示例,假设我需要在存储库中的任务中修复第一个离散的里程碑 CVS 团体。 此时,由于我的不完美互动 CVS, 我会履行这个提交,然后杀死了这个分支。 /我看到了太多奇怪的互动 CVS, 如果我尝试在此时继续使用相同的分支。/
已邀请:

三叔

赞同来自:

以下是我使用的一些分支命名协议以及其发生的原因。

分支命名协议

使用分组标记 /这些话/ 在您的分支名称的开头。

确定和使用导线的短标记以区分分支,使您的工作流程有意义。

使用倾斜功能将分支的名称分开。

不要使用裸露的数字作为领先部分。

避免长期分支的长期描述性名称。

组lexeme

使用 "grouping" 分支名称前面的标记。


group1/foo
group2/foo
group1/bar
group2/bar
group3/bar
group1/baz


可以根据您喜欢的工作流程调用组。 我喜欢代表自己使用短名词。 阅读提高清晰度。

短暂明确定义的令牌

选择短标记,以便它们对每个分支机构添加太多噪音。 我用它们:


wip Works in progress; stuff I know won't be finished soon
feat Feature I'm adding or expanding
bug Bug fix or experiment
junk Throwaway branch created to experiment


这些标记中的每一个可用于确定工作流程的哪个部分包括每个分支。

似乎您有几个分支用于不同的变化周期。 我不知道你的周期是什么,但让我们假设他们 'new', 'testing' 和 'verified'. 您可以使用这些标签的缩写版本调用您的分支,始终以相同的方式编写,以对它们进行分组并提醒您在您的哪个阶段。


new/frabnotz
new/foo
new/bar
test/foo
test/frabnotz
ver/foo


您可以快速确定每个分支机构均可实现哪个分支机构,并且您可以使用模板映射参数轻松将它们分组 Git.


$ git branch --list "test/*"
test/foo
test/frabnotz

$ git branch --list "*/foo"
new/foo
test/foo
ver/foo

$ gitk --branches="*/foo"


使用倾斜功能来分割零件

您可以使用几乎任何您喜欢的分区中的分隔符,但我相信倾斜功能是最灵活的。 您可能更喜欢使用一次短划线或点。 但倾斜的功能允许您在按下或提取时进行一些重命名分支 / 从遥控器。


$ git push origin 'refs/heads/feature/*:refs/heads/phord/feat/*'
$ git push origin 'refs/heads/bug/*:refs/heads/review/bugfix/*'


对我来说,最好更好地展开标签。 /完整的命令/ 在我的 shell. 我如何设置它,我可以通过键入第一部分字符并按键来搜索具有各种单元的分支 TAB. 然后 Zsh 给我一个分支列表,该分支对应于我输入的标记部分。 它适用于以前的令牌和嵌入式。


$ git checkout new<tab>
Menu: new/frabnotz new/foo new/bar


$ git checkout foo<tab>
Menu: new/foo test/foo ver/foo


/Zshell 它非常轻松地配置为完成命令,我还可以以相同的方式调整它以处理划线,下划线或点。 但我更愿意这样做。/

它还允许您在许多团队中寻找分支机构。 git, 例如:


git branch --list "feature/*"
git log --graph --oneline --decorate --branches="feature/*"
gitk --branches="feature/*"


注意:根据评论中的Slipp,倾斜功能会导致问题。 由于分支机构作为一种方式实现,因此您不能指定一个分支 "foo" 另一个分支命名 "foo/bar"., 什么可以导致新用户混淆。

不要使用裸体数字

不要使用裸体数字 /或者 hex 数字/ 作为命名计划分支的一部分。 在“链路扩展”选项卡中, git 可以决定数字是部分 sha-1 而不是分支的名称。 例如,我的跟踪器调用十进制数字的错误。 我叫我的相对分支 CRnnnnn, 而不是简单 nnnnn, 避免混淆。


$ git checkout CR15032<tab>
Menu: fix/CR15032 test/CR15032


如果我试图只扩展 15032, git 如果我想搜索名字,会不确定 SHA-1 或分支机构,我的选择会有所限制。

避免长期描述名称

当您查看分支机序列表时,长标题分支可能非常有用。 但它可能会干扰看起来装饰的单线日志,因为分支的标题可以吃大部分相同的线条并减少杂志的可见部分。

另一方面,分支的长名称可能更有用 "merge commits", 如果您不需要手动重写它们。 关于修复默认合并的消息
Merge branch 'branch-name'

. 您可以找到更有用的是合并显示的消息
Merge branch 'fix/CR15032/crash-when-unformatted-disk-inserted'

, 而不是简单
Merge branch 'fix/CR15032'

.
</tab></tab></tab>

冰洋

赞同来自:

http://nvie.com/posts/a-succes ... odel/
文森特迪莎有很好的建议。 以下是一张照片。 如果您喜欢这个分支模型,请考虑
https://github.com/nvie/gitflow/tree/master
. 其他
http://jeffkreeftmeijer.com/20 ... flow/
Dryssen模型包括

仅用于释放的主分支。 典型名称
master

.

"develop" 分支分支。 这是用于大多数主要作品的那个。 通常被称为
develop

.

从开发分支机构的函数的几个分支。 名称基于对象的名称。 他们将被合并回到发展,而不是在分支机构中 master 或者 release.

释放分支用于存储潜在版本,只有纠错且没有任何新功能。 典型名称
rc1.1

.

更正是来自主人的变化的短暂分支,并在没有开发分支的参与的情况下进入大师。

https://i.stack.imgur.com/tjJCt.png

三叔

赞同来自:

我的个人偏好是在使用线程分支完成后删除分支的名称。

而不是尝试使用分支名称来解释分支的值,而不是在该分支的第一个固定中开始定影消息的主题行 “Branch:” 如果主题没有给我足够的空间,我将进一步解释进一步解释信息。

我使用中分支的名称只是一个描述符,用于引用主题分支在处理它时。 一旦分支机构主题的工作完成,我就会摆脱分支机构,有时会标记后续上诉的固定。

它也结束了
git branch

更有用的是:只包含长期分支和主动主题分支的列表,而不是全部分支机构。

裸奔

赞同来自:

我从我看到的不同方案中混合并拾起,并在我使用的工具的基础上。 因此,我的完整标题将是:

name/feature/issue-tracker-number/short-description

什么翻译为:

mike/blogs/RSSI-12/logo-fix

零件通过倾斜的特征来分隔,因为它们被解释为文件夹 SourceTree 为了方便组织。 我们用 Jira 要跟踪我们的问题,因此包含该数量使得更容易搜索系统。 启用此数字也使得在尝试在内部找到此问题时可以搜索 Github 当您尝试发送空请求时。

石油百科

赞同来自:

为什么每个任务需要三个分支/合并? 你能解释一下这个吗?

如果使用错误跟踪系统,则可以将错误编号用作分支名称的一部分。 这将保存唯一的分支的名称,并且您可以为它们或两个添加一个简短的和描述性词,以便它们是可读的人,例如,它们是可读的
"ResizeWindow-43523"

. 当您去清洁分支时,它还有助于使事情更容易,因为您可以找到适当的错误。 这就是我通常叫我的分支机构的方式。

由于这些分支最终结合回来 master, 您必须安全,在合并之后删除它们。 如果你不合并
--squash

, 如果需要,分支的整个历史仍然存在。

裸奔

赞同来自:

请注意,它显示在
https://github.com/git/git/com ... 00b18
或者
https://github.com/git/git/com ... 8ae84
/行进 2014 G。/, 现在是 Git 2.0, 你会找到关于命名的另一个名字 /可以应用于分支机构/.

"When you need to use space, use dash"- 这是一种奇怪的方式,说你不应该使用空间。

由于在命令行描述中更常用。 dashed-multi-words, 您甚至不想在这些地方使用空格。

分支名称不能包含空格 /见部分 "

"和
http://git-scm.com/docs/git-check-ref-format
/.

因此,对于每个分支名称,它将由多值表达式表示,使用 '
-

' /短跑/ 作为一个分隔符是一个好主意。

卫东

赞同来自:

遵循优惠 farktronix, 我们用了 Jira 售票室有类似的 mercurial, 我计划继续使用它们 git 分支机构。 但我认为机票号本身可能是非常独特的。 虽然在分支的标题中具有描述性词语,但如前所述,如图所示 farktronix, 如果您经常在分支机构之间切换,您可能希望更少打印。 然后,如果您需要知道分支的名称,请查看 Jira 门票中的相关关键字,如果您不知道。 此外,您必须在每个评论中启用票号。

如果您的分支是一个版本,那么,显然,常规协议就是使用格式 x.x.x /例子: "1.0.0"/ 对于分支机构的名称和 vx.x.x /例子 "v1.0.0"/ 用于标记名称 /避免冲突/. 也可以看看:
https://coderoad.ru/2006265/

要回复问题请先登录注册