SVN转Git分支/标签/主干

21

我正从SVN转向Git(尽管我仍然尊重SVN),我对一些从SVN到Git的术语有几个问题。在SVN中,许多版本库都是这样设置的:

- trunk  : The place where all of the main development occurs
- tag    : Storing versions of major releases or important milestones
- branch : Where smaller "branch" development occurs as to not conflict with the main development occurring in the trunk, then is later merged into the trunk

Git中分支/标签/主干的标准约定名称是什么?

感谢您的时间。

3个回答

35
  • SVN主干 --- Git主分支 (refs/heads/master)
  • SVN分支/* --- Git分支 (refs/heads/*)
  • SVN标记/* --- Git标记 (refs/tags/*)

非常全面!谢谢! - Oliver Spryn

16

Git不强制使用特定的项目结构。对于 Git 本身重要的所有信息都将存储在隐藏的 .git 目录中。 要列出或查看分支和标签,请使用 git 命令:

git branch 
git tag
...

要获取更多信息,请使用git help命令或查看这本免费的书籍


11

实际上没有直接的类比。SVN使用目录结构将副本直接存储在仓库中,以允许创建分支和标签。因此,在创建结构来保存这些副本以在仓库中进行处理的概念中存在。

另一方面,Git将此作为元信息维护,并将所有内容视为某个“时间”点的快照,由哈希唯一标识:

Subversion通过副本标记历史中的某些检查点,该副本通常放置在名为tags的目录中。 Git标签更加强大。Git标签可以附加任意描述(第一行与提交的情况相同),有些人实际上在标签描述中存储了整个发布公告。标签的标记人的身份得以记录(遵循与提交者身份相同的规则)。您可以对提交以外的其他对象进行标记(但从概念上讲,这是相当底层的操作)。并且可以对标签进行密码学PGP签名以验证身份(由于Git的工作方式,该签名还确认了相关修订版、其历史和树的有效性)。

因此,基本上没有“仓库结构”;只有项目结构(即在SVN存储库中的trunk、分支或标记中找到的内容)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接