c++ - 这些辅助文件应该在 Git 版本控制之下吗?

标签 c++ git version-control branching-and-merging

我决定开始为我的 C++ 项目使用 Git 版本控制系统。我是版本控制的新手。对于主干,事情很简单,我只需提交我拥有的所有项目版本。我将每个版本都保存在一个单独的文件夹中,因为我知道我很快就会使用 Git。但是我的分支遇到了问题。

在开发的某个阶段,我决定要在一个分支中开发一个类。没有版本控制,我不得不使用“手动”分支。我将该类的最新头文件和源文件复制到一个单独的文件夹并开始在那里工作。我在那里制作了几个版本以同时使用。一个版本是根据计划(我为此创建了“分支”)的类(class)的第一个原型(prototype)。然后我添加了另一个文件,我在其中复制了第一个文件,但删除了一些似乎不需要的东西。这样我就有了 2 个版本,一个包含我的所有想法和功能,另一个只包含我在代码中实际使用的内容,没有目前未使用的内容。

但后来我添加了更多。随着开发的进行,我决定将该类作为模板可能是个好主意。所以我添加了第三个版本,它和第二个版本一样,但现在一些使用多态实现的功能是使用模板实现的。我还不能说哪个版本最好,因为现在说还为时过早,所以我想把这三个版本放在一起。

然后我又做了一个特殊的文件:第三版头文件的拷贝,里面每一行都可以标记或者不标记。已标记表示我使用了该特定方法,或者我确定它很快就会被使用,否则该行未被标记。

然后,一段时间后,我开始了一个新的分支。对于那个分支,我需要在第一个分支中开发该类的新版本。所以我只是将其中一个版本复制到新分支的文件夹并开始在那里工作。现在我又有了某种辅助文件:我有 2 个文件,一个是我从中删除我使用的类方法,另一个是我在其中写入我需要的新方法。

现在我想开始使用 Git,我想知道:对于项目的所有文本文件、计划、图表等,很明显 - 我将它们保存在 Git 存储库之外。每当需要协作编辑时,我都可以建立一个 wiki 或类似的东西。但是对于同一个头文件的所有这些拷贝,以及那些辅助的“标记”文件,我该如何处理它们呢?我的意思是,我可以将它们全部放在一个分支中,但是当我将一个分支 merge 到主干中时会发生什么?我不想拥有所有这些拷贝、版本和列表,只想要我制作的最后一个类(class)文件。

一方面,这些是编码时使用的 C++ 源文件。另一方面,它们不是软件包的纯源代码的一部分,它们只是在我工作时帮助我,但永远不会被编译,因为最后只有我选择 merge 的类的最终版本,并且所有其他辅助文件、列表等仅供引用。

最好的办法是什么? 感谢您阅读我的长篇故事:)

编辑:这是我个人电脑上的一个本地仓库

最佳答案

始终将文档保存在与源代码相同的存储库中。如果不这样做,您的文档将会腐烂。这是因为文档是针对您的软件的某个版本编写的,所以它必须以与软件开发相同的方式开发。

如果您的文档是自动生成或编译成另一种格式,则只提交源数据、生成文件和生成器配置,就像您处理源代码一样。

关于c++ - 这些辅助文件应该在 Git 版本控制之下吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14623129/

相关文章:

c++ - 原子/非原子混合,有任何保证吗?

svn - 有没有办法让 TortoiseSVN 表现得更像 TortoiseCVS?

git - .git 目录是否包含远程密码或 SSH key ?

git - 如何删除没有指定分支的git中的提交?

Git 使用单个命令添加所有未暂存/未跟踪的文件

git - merge 多个作者的功能分支

powershell - 如何确定 TFS 工作区是本地工作区还是服务器工作区

c++ - 在 C++ 中,类模板的显式特化定义应该放在哪里?

c++ - 使用 mingw64 在 jmpq 上崩溃到另一个 dll 中的函数

C++ qt基础问题