3

我最近将我的网站置于 Git 版本控制之下。我正在使用git-ftp上传文件,并且我已将其设置为master分支是应该在服务器上live的内容,而分支是实际服务器上的内容。我需要做出这种区分,因为我有时会在没有 Internet 连接的地方进行开发,因此无法立即上传。因此,为了上传,我这样做git checkout live;git merge master;git ftp push:我想自动化这个过程,而不是丢失其余的工作目录状态。将来,我还将设置几个文件的自动备份,这些文件将被 ftp 下载并提交到live分支。

为了完成所有这些,我将需要另一个克隆,它只会被自动化进程使用,并且总是有一个干净的工作目录。放置它的明显位置,因为它永远不需要查看,位于主存储库的 .git 目录中。这样,我的文件系统中的其他地方就没有一个克隆漂浮,它保持隐藏状态,很明显它是内部结构的一部分,不应该被戳穿。如果这很好用,我什至可以提交一个补丁来使用这种方法修复git-ftp 问题 #180 。

但是,我不确定将随机的东西放在 .git 文件夹中是否是个好主意——我在任何地方都找不到任何关于副作用可能是什么的文档。

4

2 回答 2

1

一个.git目录似乎完全忽略了任何额外的元素,所以直接添加一个 git repo.git应该可以。
如果您将嵌套存储库添加到子目录中,例如.git/refs(参见Git Internals - Git References) ,这将不起作用

请注意,您还可以在当前 git repo 中的任何位置拥有该 git repo ,例如,作为一个名为的目录.ftprepo(以点开头的名称,默认情况下应隐藏)

于 2013-04-04T07:47:21.070 回答
1

我在寻找其他东西时错误地找到了答案!

根据https://www.kernel.org/pub/software/scm/git/docs/#_file_directory_structure,“更高级别的 SCM 可能会在 $GIT_DIR 中提供和管理其他信息”。这似乎意味着可以将其他信息存储在 .git 中而不会引起问题,可能包括存储库的另一个克隆。

于 2013-04-04T14:10:14.113 回答