我想了解如何为生产服务器上的现有网站设置Git(仅托管一个网站 - 没有vHosts等)。
有几个如何实现这一目标的例子 - 但所有这些都是指你何时开始一个新项目。
我想复制这个场景,该场景描述了如何设置远程存储库并创建更新后的挂钩,以便在结账时将文件复制到www目录中。这是我能掌握的概念(https://danielmiessler.com/study/git/#website)
但是,我面对网络服务器上存在实时代码的情况,我想在所有现有的实时文件上初始化Git,然后在我的本地计算机上进行开发。
对不起,我不太了解Git了解如何从我在生产中的服务器上使用实时代码的起始位置实现Daniel文章中描述的结果。
我的配置(CentOS 6 / Nginx):
Git Repository(这应该位于与www不同的位置)
/home/username/repository/website.git
发布更新挂钩文件位置
/home/username/repository/website.git/hooks/post-update
发布更新挂钩文件条目
GIT_WORK_TREE=/var/www/website git checkout -f
网站目录
/var/www/website
我也有一个忽略文件
/var/www/website/.gitignore
有人可以帮助Git命令。我可以初始化/var/www/website/.git
(初始提交)但不知道如何设置/user/username/repository/website.git
以文章中描述的方式工作。
答案 0 :(得分:1)
指南中显示的步骤与新项目或现有项目完全相同。创建html文件的步骤2中给出的示例可以通过将现有内容添加到工作目录中来替换。
因此,在新的工作文件夹中运行git init
,虽然这可以在现有文件夹中完成,因为它不会更改任何当前文件。将您当前的网络内容放入同一个文件夹,无论是从备份导入,还是直接从您的实时环境下拉,它都不重要。
现在,您需要为版本控制下的所有文件运行git add
命令。您不需要单独执行它们,接受通配符和目录。使用git status
检查您想要的所有内容是否已暂存,然后使用适当的消息git commit -m
进行检查。
我建议您在本地创建另一个目录并在那里发出git init --bare
命令,设置钩子以推送到另一个目录,然后使用
git push --set-upstream [/your/local/bare/repo] master
只是为了检查您是否拥有所有内容并且您对git感到满意