Git目录结构混乱问题

4

我之前使用svn,虽然不算高级用户,但对git的目录结构感到困惑。

为了一个C++项目,我读了在线书籍《pro git》的前三章。我认为这是一本非常好的书,有很多图表来解释,易于理解。

现在问题是,svn会在trunk目录下创建我的头文件和源代码,即(include和src目录)。在前三章和随后的章节中,我没有看到这样的结构。问题是,在这样的目录下如何更好地组织你的工作,是应该创建不同的目录并将文件分别添加到跟踪控制中,还是有更有结构化的方法可以将它们作为一个整体处理?

我想我不必把所有东西都放在一个地方,这似乎不太可能...

3个回答

8

您可以使用任何文件夹结构。

如果您希望拥有

myproject
  |-- src
  |-- include

没问题。你当然不必把所有东西都放在一个地方。

唯一需要注意的是(假设myproject是你的仓库根目录),你的仓库数据将存储在那里的.git文件夹中:

myproject
  |-- .git
  |-- src
  |-- include

与 SVN 工作副本中每个文件夹中的 .svn 文件夹不同,Git 只使用这个文件夹来跟踪仓库。


哦,好的,那就是我误解的地方,这与快照概念一致,对吧?它会对我的项目下的内容进行快照,然后处理这些快照,我说得对吗? - Umut Tabak
@Umut:你的repo就是你的工作副本。如果你提交了,信息就会存储在.git文件夹中。这回答了你的问题吗? - eckes
Eckes,嗯,不确定,那我应该添加整个目录,然后该目录下的所有内容都会自动跟踪,对吧? - Umut Tabak
几乎了解。在您的源代码所在目录中执行 git init 命令。这将创建存储库(即 .git 文件夹)。然后执行 git add . 命令将目录中的所有内容添加到存储库中。最后执行 git commit -m "initial" 命令进行第一次提交。 - eckes

7

SVN没有真正的标签和分支,一切都只是另一个文件或文件夹的副本。Git支持真正的分支,不需要类似于SVN的目录结构。 只需为您的项目创建所需的目录结构 - 对于分支和标记,请使用git branchgit tag,而不是Subversion的svn copy命令。


3

Git在修订内容(以目录树形式排列的文件)和修订历史、分支之间做了明确的区分。

因此,典型的git用户不会创建像“主干”和“分支”这样的目录。一个提交只包含属于这个修订的文件。它完全取决于你的内容,没有一本git书籍会推荐它应该是什么样子的。

要查看您的修订历史,请使用工具gitk。

当然,如果您真的想这样做,您可以创建目录“主干(trunk)”,“分支(branches)”等,但git不会抱怨。SVN用户可能会很高兴看到这样的仓库,但git用户可能不会那么喜欢。


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