3

我对 GitHub 有疑问。

我使用 GitHub 上的远程存储库将副本下载到服务器以安装软件,但每个服务器都需要对名为/www/inc/config.inc.php其他文件夹的文件进行一些更改,www/images/因为每个安装都是个性化的。

当我调用命令“ git pull”以将不同的服务器安装与 GitHub 同步以获取新的更改或版本时,问题就出现了,因为文件www/inc/config.inc.php将其内容更改为原始文件或位于 GitHub 上的文件。
我想说 GitHub 不同步我最初运行的每台服务器上的www/inc/config.inc.php文件和文件夹进行新安装的命令。/www/imagesgit clone

4

2 回答 2

2

我首先想重申您的问题,以确保我理解正确。

您有需要执行或更新的服务器(如果存在)。您在 github 上有安装文件。

对于新安装,您从 github 克隆,然后修改 /www/inc/config.inc.php 文件和 /www/images 文件夹。

当您执行更新时,您将这些更新推送到 github,然后您希望将这些更新从 github 拉到您的各种服务器,但不想合并或覆盖本地更改。

如果我的场景不正确,请发表评论。

假设以上是正确的,这里有一个方法来完成这个:

当您第一次将 repo 克隆到本地服务器时,请在进行本地更改之前创建一个分支。始终将本地存储库保留在您创建的分支上。

#clone the repo
git clone git://github.com/you/yourproject.git

#create and checkout a local working branch
git checkout -b workingBranch

#make your changes to configs and other directories freely
...
#when you're done, add and commit those changes
git add .
git commit

当您有更新时要拉到本地计算机

#checkout the master branch
git checkout master

#pull to get the latest code
git pull origin master

#checkout the workingBranch again
git checkout workingBranch

#rebase to get the new changes on that branch
git rebase master

这将暂时回滚您在分支上所做的更改,从主分支获取最新提交,然后在新更改之上“重播”您的提交。

于 2012-04-11T12:26:24.120 回答
0

除非您打算直接在实时服务器树 ( /www) 中进行修改,提交它们并将它们推回,否则您不需要直接从/www.
即你不需要/www成为一个 Git 仓库。

您可以在您的服务器上拉入该 repo 的克隆,然后在您的实时环境中同步您需要的内容(仍在您的服务器上)。
换句话说,你在 git repo 和 live tree 之间保持严格的分离。
这样,您就可以准确控制需要更新的内容。

于 2012-04-11T07:35:05.090 回答