使用git跟踪服务器上所做的更改而不提交

时间:2012-06-19 16:41:17

标签: wordpress git

在我提出问题之前,我想提一下,我今天只是 开始尝试使用git,这让我成了一个全新的git新手。

我经常与Wordpress网站上的平面设计师合作,为客户服务。将代码上传到服务器后,图形设计师有时会编辑CSS&使用Wordpress编辑器直接在服务器上的其他文件(在Wordpress管理面板中)。

你可以想象这对我来说是一个问题,因为我必须首先将所有修改过的文件重新下载到我的本地开发文件夹 - 因为我不知道编辑了哪些文件,所以我必须重新下载整个主题文件夹。然后我在本地进行更改,然后重新上传到服务器。

从我在网上看到的内容来看,Git似乎可以减轻这种痛苦。

我的问题:如果设计人员使用wp编辑器使用git / commit 使用git / commit对服务器上的文件进行更改,则会使用Git还在救我吗?它是否会自动将所有修改过的文件下载到我的机器上,与Dropbox的工作方式类似?

1 个答案:

答案 0 :(得分:1)

执行git pull来移动文件,不会从服务器上的工作目录中收集任何更改。潜在的工作流可能是首先登录到服务器并提交所有更改并将其推送到裸存储库。然后,您可以从裸存储库本地获取并查看其他人所做的更改,git将帮助您将它们合并到您的本地环境中。

您也可以通过推送到裸存储库然后从裸存储库拉到生产服务器,以相同的方式从本地环境部署到生产环境。

裸仓库似乎是一个额外的步骤,但是你的两个环境(服务器和你的本地)都是工作环境,所以通过提交和合并来转移裸仓库会让你更容易。 (如果我在这个方面偏离轨道,我相信有人会以我的方式指出错误......)

您需要从repo中排除wp-config.php文件,或者根据环境变量等修改权限站点(即在本地和服务器上设置vhost文件中的环境变量并使用一个条件语句,用于确定在wp-config.php中使用哪些DB凭据)。类似的东西:

switch ($_SERVER['APPLICATION_ENV']) {
case 'local':
    define('DB_NAME', 'local');
    define('DB_USER', 'localuser');
    define('DB_PASSWORD', 'localpwd');
    define('DB_HOST', 'localhost');
    define('WP_HOME','http://local.verycoolwebsite.com');
    define('WP_SITEURL','http://local.verycoolwebsite.com');
    define('WP_DEBUG', true);
    define('SAVEQUERIES', true);
break;

case 'production':
    define('DB_NAME', 'production');
    define('DB_USER', 'www');
    define('DB_PASSWORD', 'foobar');
    define('DB_HOST', 'localhost');
    define('WP_HOME','http://www.verycoolwebsite.com');
    define('WP_SITEURL','http://www.verycoolwebsite.com');
    define('WP_DEBUG', false);
    define('SAVEQUERIES', false);
break;
}

如果图像目录很大并且不需要版本控制,那么排除图像目录也是一个好主意。

作为另一种选择,如果您要查找的内容是移动更改而不是完整版本控制,请查看rsync命令。