我最近将我的网站置于Git版本控制之下。我正在使用git-ftp上传文件,我已将其设置为master
分支是应该在服务器上的内容,以及{{ 1}} branch是服务器上实际 的内容。我需要进行区分,因为我有时会在没有Internet连接的地方开发,因此无法立即上传。因此,为了上传,我做:live
;我想自动执行此过程,而不会丢失其余的工作目录状态。在将来,我还将设置几个文件的自动备份,这些文件将被ftp-down并提交给git checkout live;git merge master;git ftp push
分支。
为了完成所有这些,我将需要另一个仅由自动化进程使用的克隆,并且将始终具有干净的工作目录。放置它的明显位置,因为它永远不需要被查看,位于主存储库的.git目录中。这样,我没有一个克隆从我的文件系统中的其他地方浮动,它保持隐藏,很明显它是内部的一部分,不应该用它来探讨。如果效果很好,我甚至可以使用此方法提交补丁来修复git-ftp issue #180。
但是,我不确定将随机内容放在.git文件夹中是否是个好主意 - 我无法找到任何关于副作用的文档。
答案 0 :(得分:1)
.git
目录似乎完全忽略了任何额外元素,因此直接在.git
中添加git repo应该有效。
如果您将嵌套的repo添加到子目录中,例如.git/refs
(请参阅Git Internals - Git References)
请注意,你也可以在你当前的git repo 中的任何地方拥有git repo ,作为一个名为.ftprepo
的目录(一个以点开头的名称,应该是默认隐藏)
答案 1 :(得分:1)
我在寻找别的东西时错误地找到了答案!
根据https://www.kernel.org/pub/software/scm/git/docs/#_file_directory_structure,“更高级别的SCM可以在$ GIT_DIR中提供和管理其他信息”。这似乎意味着可以在.git中存储其他信息而不会导致问题,包括可能是存储库的另一个克隆。