tl;博士
我想要的是一种整洁的方法,可以将代码从我的 Web 服务器推送到远程存储库中的孤立分支,之后无需在 Web 服务器上留下任何 Git 存储库,也无需先将整个远程存储库克隆到 Web 服务器上。我还需要在 Web 服务器上保持当前的、未版本化的文件不变。
编辑:澄清一下,我不是在要求一种方法来设置部署或任何类似的东西,我已经有了这个工作。我只需要一种方法将现有代码从非版本控制目录整齐地推送到远程存储库中的新孤立分支,而不会弄乱网络服务器上的文件,也不会留下任何.git
文件。
背景资料
我最近进入了使用 Git 对我的所有网站进行版本控制的趋势。它似乎比 FTP 容易得多,并且允许在具有完整历史和修订的团队中工作。我正在经历将所有内容导入 Git 存储库的过程,但我遇到了一些问题。
我有一个项目,它将有多个(孤立)分支,代表代码的不同部署目标。出于这个问题的目的,这就是我的设置:
我有 3 台服务器。两个是 Web 服务器,一个是混合 Web-Git 服务器。
其中一个 Web 服务器是一个小型 VM,用作 Cloudflare 的 CDN 后端。它运行一个 nginx 服务器,只需向 Cloudflare 提供一次或两次更改或新文件以进行缓存(它很小,因为 Cloudflare 只请求一次文件,这意味着它不处理大量请求)。
我的第二个 Web 服务器托管实际的网站,并包含应用程序的整个服务器后端。
出于说明目的,这两个 Web 服务器都是独立的机器。第三台机器只是 Git 服务器,托管着一堆 Atlassian 应用程序。
我还有一个以前的 SVN 存储库,其中包含与项目相关的服务器的 C# 源代码。
问题
我已将现有的 SVN 存储库导入到 Git 存储库的“主”中。我现在想创建 2 个孤立分支,一个用于 CDN 文件,一个用于网站文件。
经过一番研究,我遇到了这样的事情:git checkout --orphan <branchname>
. 这就是我的问题所在。我想创建一个分支来推送 CDN 等代码,然后从当前的 Web 服务器推送代码,而无需克隆整个存储库。因为git checkout
需要一个现有的 git repo 在工作目录中,所以我不知道该怎么做。我尝试git init
创建文件所在的目录,在本地创建一个新分支,提交它们,然后将它们推送到远程分支,git push git@mydomain.com:me/the_repo +local_branch:cdn_branch
但这不起作用,并在我的 Web 服务器 WWW 文件夹中留下了一个 Git 存储库。