Git集线器和远程 Git 带有生产和开发代码的 repo

Github and remote Git repo with production and development code

我有我的本地 Git 回购,我将其推拉到 Github 与我的团队作为中央回购。

然后我有一个远程暂存区,其中包含整个裸仓库和 post-receive 挂钩,用于将我的更改推送到网络。为此,我使用 'git push staging master' 将网站放到暂存区。

我的项目包含一个 src/ 目录,我用它来存储我的 gulp 文件和 sass 文件。然后我使用 gulp 编译并生成我的 dist/ 目录。

我显然不希望我的 dist/ 东西在 Github 仓库中,因为这会导致疯狂的冲突并且不需要在那里,但是 我确实想要 它在我的远程网站 repo 中用于生产。我该怎么做?

我考虑过为每个遥控器设置单独的 .gitignore 文件,但这没有意义,因为它几乎违背了 Git 的要点,而且我也不认为在我用谷歌搜索了一下后,它甚至是一个选项。

虽然您的问题有点宽泛,但您可以从这里开始。

您想始终忽略 dist 目录并使服务器(暂存或生产)在检出最新版本后触发 npm install

此外,如果您正在使用它生成的 yarn or npm v5, commit the yarn.lock or package-lock.json 文件。

然后,使用 npm 的 post-install 钩子让它触发你的 gulp build

您还可以使用 husky,一个自动安装在 .git 目录中的 npm 模块,让您根据 [=18] 中的命令定义和版本 git 挂钩=] package.json.

的属性
"scripts": {
  "postcheckout": "npm install", // <-- Git hook from Husky
  "postinstall": "gulp build"    // <-- default npm hook
}