git工作流和github与live网站和开发网站

git工作流和github与live网站和开发网站,git,github,Git,Github,我有一个我想使用git/github的实时网站。该网站有一个local.config,其中包含数据库配置和密码、大量用户目录、缓存目录和数据库,我想知道如何最好地使用git/gihub。第一步是将我的live网站迁移到github。一旦我将它移动到github,我计划在开发服务器上克隆它。从开发服务器将更新推送到github,然后最终推送到我的live网站 如何将所有文件提交到github而不在local.config中包含密码?另外,当我从开发服务器提交更改时,如何在live web服务器、g

我有一个我想使用git/github的实时网站。该网站有一个local.config,其中包含数据库配置和密码、大量用户目录、缓存目录和数据库,我想知道如何最好地使用git/gihub。第一步是将我的live网站迁移到github。一旦我将它移动到github,我计划在开发服务器上克隆它。从开发服务器将更新推送到github,然后最终推送到我的live网站

如何将所有文件提交到github而不在local.config中包含密码?另外,当我从开发服务器提交更改时,如何在live web服务器、gihub和开发服务器上保留local.config文件而不覆盖它们

对于用户目录,我想忽略所有单独的用户目录和内容,但是,我想保留主目录webroot/userdir(用户目录将位于webroot/userdir下。对于我的缓存目录,我想确保没有缓存被githubed,但我想保留目录“cache”


我还担心从github更新时会删除live网站或其部分内容。

在提交之前将您的local.config文件添加到gitignore。但在您需要的任何地方都要有一份副本。Git不会触及您选择忽略的文件

简而言之,任何你不想成为githubbed的东西都会被添加到gitignore/exclude中,但这意味着你不能控制这些文件的版本

希望这能回答问题


快乐的gitting!

Mudassir Razvi是正确的,您可以使用gitignore停止跟踪您的本地.config文件。但是,我通常认为这是一种不好的做法(特别是如果您正在创建一个应用程序供其他人使用,例如与开源项目一起使用)。我希望继续跟踪对local.config文件的更改,以便您可以继续添加新的配置变量。在Web服务器上克隆网站后,您只需停止跟踪对live server上配置文件的更改即可

git update-index --assume-unchanged "config.local"
这与将其添加到gitignore文件的效果相同,只是它可以通过帮助隐藏敏感文件来增加一点安全性。如果gitignore文件可以通过web访问,这一点尤其有用

但更重要的是,如果您错误地更改或删除了gitignore文件,这可以防止意外更新,并且还允许您的其他克隆继续跟踪更改,因为gitignore文件也是克隆的

您可以使用以下命令随时恢复跟踪:

git update-index --no-assume-unchanged "config.local"
同样有用的是,您可以列出哪些文件在任何时候都保持不变

git ls-files -v|grep '^h'