如今,我已经使用本地git存储库与个人组的CVS存储库进行了几个月的交互。 我已经制做了一个几乎神经质的分支,其中大部分幸运地合并回个人行李箱。 可是命名开始成为一个问题。 若是我有一个容易用简单标签命名的任务,可是我在三个阶段完成它,每一个阶段都包含它们本身的分支和合并状况,那么我每次均可以重复分支名称,但这会使历史有点混乱。 若是我在名称中有更具体的说明,而且每一个阶段都有单独的描述,那么分支名称开始变得冗长并且难以处理。 git
我确实经过这里的旧线程学习,我能够开始用名称中的/来命名分支,即主题/任务,或相似的东西。 我可能会开始这样作,看看它是否有助于保持更好的组织。 github
命名git分支有哪些最佳实践? 安全
编辑:实际上没有人建议任何命名约定。 当我完成分支时,我会删除分支。 因为管理层不断调整个人优先事项,我恰巧有几我的。 :)做为为何我可能须要在任务上须要多个分支的示例,假设我须要将任务中的第一个离散里程碑提交到组的CVS存储库。 那时,因为我与CVS的不完美交互,我会执行该提交而后杀死该分支。 (若是我在这一点上尝试继续使用相同的分支,我看到太多奇怪的事情与CVS交互。) 工具
我已经看到了基于我正在使用的工具的不一样方案的混合和匹配。 因此我完成的分支名称将是: 学习
名称/特征/问题跟踪数/短说明 spa
这将转化为: 命令行
麦克/博客/ RSSI-12 /标志修复 线程
这些部分由正斜杠分隔,由于它们在SourceTree中被解释为文件夹以便于组织。 咱们使用Jira进行问题跟踪,所以包含该数字能够更容易地在系统中查找。 当尝试在提交拉取请求时尝试在Github中找到该问题时,包括该数字也使其可搜索。 3d
继farktronix的建议以后,咱们一直在使用Jira票号来表示相似的状况,我打算继续将它们用于git分支。 但我认为票号自己可能足够独特。 虽然如farktronix所指出的那样在分支名称中包含描述性单词可能会有所帮助,但若是您常常在分支之间进行切换,则可能须要更少的输入。 而后,若是您须要知道分支名称,请在Jira中查找故障单中的关联关键字(若是您不知道它)。 此外,您应在每条评论中包含票号。 code
若是您的分支表明一个版本,则一般的约定是对分支名称使用xxx(例如:“1.0.0”)格式,对标记名称使用vx.xx(例如“v1.0.0”)(以免冲突) 。 另请参阅: is-there-an-standard-naming-convention-for-git-tags
请注意,如提交e703d7或提交b6c2a0d (2014年3月)中所示,如今是Git 2.0的一部分,您将找到另外一个命名约定(能够应用于分支)。
“当你须要使用空间时,使用破折号”是一种奇怪的方式,说你不能使用空格。
由于命令行描述更常见的是使用虚线多字,因此您甚至不想在这些地方使用空格。
分支名称不能有空格(请参阅“ 分支名称中哪些字符是非法的? ”和git check-ref-format
手册页 )。
所以,对于将由多字表达式表示的每一个分支名称,使用“ -
”(破折号)做为分隔符是个好主意。
我我的的偏好是在完成主题分支后删除分支名称。
我没有尝试使用分支名称来解释分支的含义,而是使用“Branch:”在该分支的第一次提交中启动提交消息的主题行,若是主题包含在消息正文中的进一步说明不给我足够的空间。
我使用的分支名称纯粹是在处理主题分支时引用主题分支的句柄。 一旦完成了主题分支的工做,我就会删除分支名称,有时会标记提交以供之后参考。
这使得git branch
的输出也更有用:它只列出了长寿分支和活动主题分支,而不是全部分支。
为何每一个任务须要三个分支/合并? 你能解释一下这个吗?
若是您使用错误跟踪系统,则能够将错误编号用做分支名称的一部分。 这将使分支名称保持惟一,而且您能够在它们"ResizeWindow-43523"
添加一个简短的描述性词语,以使它们具备人类可读性,例如"ResizeWindow-43523"
。 当你去清理分支时,它还有助于简化操做,由于你能够查找相关的bug。 这就是我一般用个人分支命名的方式。
因为这些分支最终会合并回master,所以在合并后应该安全地删除它们。 除非你与--squash
合并,不然若是你须要它,分支的整个历史仍然存在。