如何安全地提交.git目录

如何安全地提交.git目录,git,.git-folder,Git,.git Folder,我正在开发一个与git相关的软件,我的代码中包含了单元测试 我已经创建了一个测试git项目(在一个子目录下),供测试使用:resources/testGit project 此测试git项目未与任何远程项目关联,但它包含提交/标记/分支 在git中提交资源/测试git项目的内容最安全的方法是什么?您不应该有嵌套的git存储库 为代码和测试创建一个唯一的repo(有点常见),或者创建两个单独的repo,但在文件系统中处于相同的层次结构级别,而不是嵌套在另一个文件系统中。您可以将其压缩或添加为git

我正在开发一个与git相关的软件,我的代码中包含了单元测试

我已经创建了一个测试git项目(在一个子目录下),供测试使用:
resources/testGit project

此测试git项目未与任何远程项目关联,但它包含提交/标记/分支


在git中提交
资源/测试git项目的内容最安全的方法是什么?

您不应该有嵌套的git存储库


为代码和测试创建一个唯一的repo(有点常见),或者创建两个单独的repo,但在文件系统中处于相同的层次结构级别,而不是嵌套在另一个文件系统中。

您可以将其压缩或添加为
git子模块,取决于您希望更改内容的频率以及
.git
文件夹的哪些部分对您的测试很重要

将其添加为子模块将使访问
.git
目录更加容易,但不会真正提交目录的内容并管理目录的修订。由于执行
git pull
(如果添加/删除分支,如果重新设置分支的基础,如果在本地创建悬挂对象,等等),您甚至会在不同的克隆上有不同的内容

你也可以用它做点什么

感谢您的回答,我找到了我想要的解决方案:

我已
.git
重命名为
gitdir
,现在可提交:

当我想执行更新或查看测试回购的状态时,我会执行以下操作:

git --git-dir=resources/test-git-project/gitdir --work-tree=resources/test-git-project anycommand

在执行单元测试之前,我复制
/tmp
下的目录
resources/test git project
,并将
/tmp/test git project/gitdir
重命名为
/tmp/test git project/.git
,这样我就不必在我的测试代码上乱用
--git dir
选项了。

我要说的是:你有一个git repo
resources/test git项目
,你在
.git
下创建了一个嵌套的git repo,或者什么?或者你创建了一个空的git repo,然后在你的空存储库中漫游
.git
目录是什么?我仍然不理解你的问题。你是否在问如何处理回购协议,比如提交变更?您所说的最安全的方式是什么意思?@Andrejs Cainikovs我尝试将测试git存储库(它是我真实存储库的子目录)的内容作为普通文件提交。我正试图找出如何提交
.git
目录,以便任何检查项目的人都能得到与我提交的完全相同的目录,以便执行单元测试?@AndrejsCainikovs如果你需要一个git repo作为测试资产,也就是说,构建一个使用git的插件,你需要一个已知状态的git repo来操作,你需要将该资产投入另一次回购。有点怪,但是exists@RalphCallaway这正是我的使用案例:)Zip似乎是个好主意,但我将等待一段时间,以获得更好的。在本例中,“嵌套”git回购只是测试中使用的一种资产,因此将其签入另一个git回购是有意义的。