如何在不同的git克隆安装中忽略带有对github的拉取请求的文件和文件夹?

时间:2012-04-11 06:25:19

标签: git github

我的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文件夹来进行新安装。

2 个答案:

答案 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之间保持严格的分离 这样,您就可以完全控制 需要更新的内容。