来自svn背景,虽然不是那个高级用户,但我对git的目录结构感到困惑。
对于C ++项目,我阅读了在线专业书的前3章。我想这是一本非常好的书,有很多数字可以简化解释。
现在的问题是svn正在创建一个trunk目录,我的头和源代码位于其下(更确切地说,我是用svn命令创建它们),include和src目录。在前三章中,我没有看到这样的结构。问题是在这样的目录下构建你的工作的最佳策略是什么,应该创建不同的目录并将这些目录下的文件分别添加到跟踪控件中,还是有更结构化的方式来完成这个?
我想我不必把所有东西放在一个地方,这是非常不可能的......
答案 0 :(得分:8)
您可以使用任何所需的文件夹结构。
如果你想拥有
myproject
|-- src
|-- include
没关系。 您(当然)不必将所有内容保存在一个地方。
唯一的事情是(假设myproject
是您的回购根),您将在其中存储一个.git
文件夹,其中存储了回购数据:
myproject
|-- .git
|-- src
|-- include
与SVN工作副本的每个文件夹中的.svn
文件夹不同,Git仅使用这一个文件夹来跟踪回购。
答案 1 :(得分:7)
svn没有任何真正的标签和分支,一切都只是另一个文件或文件夹的副本。 git支持真正的分支,不需要类似于svn的目录结构。
只需创建项目所需的目录结构 - 分别使用git branch
和git tag
进行分支和标记(而不是使用subversion的svn copy
命令)
答案 2 :(得分:3)
git明确区分了修订内容(目录树中排列的文件)和修订历史记录以及分支。
因此,典型的git用户不会创建trunk和branches等目录。一个提交实际上只包含属于此修订的文件。这完全取决于你的内容,没有git book会推荐它看起来像什么。
要查看修订历史记录,请使用工具gitk。
当然如果你真的想,你可以创建目录主干,分支等.. git不会抱怨。 SVN用户可能很高兴看到这样的回购,git用户可能没那么多。