SVN到Git Branch / Tag / Trunk

时间:2012-10-30 15:05:51

标签: git svn tags branch trunk

我正在从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中branch/tag/trunk的标准约定名称是什么?

感谢您的时间。

3 个答案:

答案 0 :(得分:32)

  • SVN trunk --- Git master(refs / heads / master)
  • SVN分支/ * --- Git分支(refs / heads / *)
  • SVN标签/ * --- Git标签(refs / tags / *)

答案 1 :(得分:15)

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

git branch 
git tag
...

要获取更多信息,请使用git help命令或查看此免费book

答案 2 :(得分:9)

真的没有任何直接的类比。 SVN使用目录结构直接在存储库中存储副本以允许分支和标记。因此,创建一个结构以将这些副本保存在存储库中是有概念的。

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

  

Subversion通过副本在历史记录中标记某些检查点,副本通常放在名为tags的目录中。 Git标签功能更强大。 Git标签可以附加任意描述(第一行在提交案例中是特殊的),有些人实际上将整个发布公告存储在标签描述中。存储标记人员的身份(再次遵循与提交者身份相同的规则)。您可以标记除提交之外的其他对象(但这在概念上是相当低级别的操作)。标签可以加密PGP签名以验证身份(通过Git的工作性质,该签名还确认了相关修订的有效性,其历史和树)。

所以基本上没有“存储库结构”;只有项目结构(即你在trunk中找到的东西,分支或SVN仓库中的标签)