我正在开发一个与git相关的软件,我已经在我的代码中包含了单元测试。
我创建了一个用于测试的git项目(位于子目录下):resources/test-git-project
这个测试git项目没有关联到任何远程仓库,但它包含了提交、标签和分支。
最安全的方法是如何在git中提交resources/test-git-project
的内容?
我正在开发一个与git相关的软件,我已经在我的代码中包含了单元测试。
我创建了一个用于测试的git项目(位于子目录下):resources/test-git-project
这个测试git项目没有关联到任何远程仓库,但它包含了提交、标签和分支。
最安全的方法是如何在git中提交resources/test-git-project
的内容?
git子模块
添加,具体取决于您希望多频繁更改内容以及哪些.git
文件夹的部分对测试很重要。.git
目录更加容易,但实际上并不会提交目录的内容和管理其修订。由于执行git pull
时(如果添加/删除分支,如果重置分支,如果在本地创建悬空对象等),不同的克隆将具有不同的内容。感谢Thibault D.的回答,我找到了我要寻找的解决方案:
我已经重命名.git
为gitdir
,现在可以提交:
当我想执行更新或查看测试存储库的状态时,我执行以下操作:
git --git-dir=resources/test-git-project/gitdir --work-tree=resources/test-git-project anycommand
在执行单元测试之前,我会将目录resources/test-git-project
复制到/tmp
下,并将/tmp/test-git-project/gitdir
重命名为/tmp/test-git-project/.git
,这样我就不必在我的测试代码中使用--git-dir
选项。
你不应该嵌套使用 Git 仓库。
应该为代码和测试拥有一个唯一的仓库(这是比较常见的做法),或者拥有两个独立的仓库,但它们在文件系统中处于同一层级,而不是嵌套在另一个仓库中。
resources/test-git-project
的 git 存储库,然后在其中创建了一个嵌套的 git 存储库.git
下面,还是您创建了一个空的 git 存储库,并想知道空存储库中的.git
目录是什么? - Andrejs Cainikovs.git
目录,以便任何检出项目的人都可以按照我提交的方式获取它,以执行单元测试? - Marinos An.git
是 git 仓库的内部目录,您不应该触碰它。存储在那里的所有内容都会自动处理。要么是我因为问题不清楚而误解了问题,要么是您正在做一些完全错误的事情。 - Andrejs Cainikovs