我的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/images
命令的每个服务器上的git clone
文件夹来进行新安装。
答案 0 :(得分: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
这将暂时回滚您在分支上所做的更改,从主分支获取最新提交,然后在新更改之上“重播”您的提交。
答案 1 :(得分:0)
除非您打算直接在实时服务器树(/www
)中进行修改,提交并推回它们,否则无需直接从/www
提取。
也就是说,您不需要/www
成为Git回购。
您可以在服务器上插入该repo的克隆,然后在您的实时环境中(仍然在您的服务器上)rsync所需的内容。
换句话说,你在git repo和live tree之间保持严格的分离
这样,您就可以完全控制 需要更新的内容。