Git 和网站开发工作流程

Git and website development workflow

我的询问很具体,我知道它们可能是主观的;我将不胜感激。

这是我之前所做的 git:

当我决定开始使用时Git:

这是我的问题:

1) 有几个文件需要它们在本地和远程保持不同(这些主要是配置文件)。我对这些文件使用 --assume-unchanged 。但是,我读到 'git reset' 会撤消这些,所以我的第一个问题是: - 当我从本地推送到远程时,有没有更好的方法永远不会更改配置文件?

2) 我的工作流程以推送到开发站点结束。我不确定如何从那里开始,以最有效和无风险的方式将我的代码部署到实时网站。

*3) 一个额外的问题:我应该将 github/bitbucket/etc.. 整合到我的工作流程中吗?

谢谢

你的方法只适用于非常小的开发组和小项目,不需要复杂的部署。但是:

1) 本地与远程

我通常将配置文件的远程版本保存在存储库中,并在本地用未跟踪​​的文件覆盖它们。然后配置加载器搜索覆盖但如果存在 none.

则不会失败

2) 开发 + 生产

一个相当简单的方法是保留一个分支用于开发 (dev) 和一个分支用于生产 (master)。或者你想要多少分支,事实上。在钩子中,您可以获得推送分支的名称,并决定将新代码复制到的位置(在最简单的情况下)。

post-更新挂钩可能如下所示:

for arg in "$@"
do
  if [ "$arg" == "refs/heads/master" ]
  then
    DEST="/path/to/production"
    git --work-tree=$DEST checkout -f
  elif [ "$arg" == "refs/heads/dev" ]
  then
    DEST="/path/to/dev"
    git --work-tree=$DEST checkout -f
  fi
done

3) 外部存储库

如果您想备份或与全世界分享,是的,您应该:)