git:忽略生产分支中的源代码和开发中的缩小文件

标签 git version-control version

我无法找到一个合理的解决方案,因为我认为这是一项非常简单的任务。假设我的项目中有一些 source 目录,其中包含所有源文件。在开发模式下,我更改了源文件,Gulp 将它们缩小为 .min.js.min.css 并将它们放入 public 目录(澄清一下,我正在构建一个 node.js 应用程序)。

现在,我有两个分支:master 用于生产,development 用于开发。

master 分支上的 .gitignore 文件

.DS_Store
node_modules
source
...

development 分支上的 .gitignore 文件

.DS_Store
node_modules
public/javascript
public/stylesheets
...

我想要得到的行为:1)忽略用于开发的缩小文件(每次我更改代码时它们都会被组装和缩小),但保留源代码; 2) 忽略用于生产的源文件(因为当我将其 $ git pull 放入生产环境时我不想拥有它们),但保持最小化。

出于某种原因,当我从 masterdevelopment 来回切换时,git 完全删除了一些文件并破坏了所有内容。例如,它删除 node_modules 中每个模块的所有内容,迫使我在每次切换分支时执行 $ rm -rf node_modules && npm install

非常感谢任何帮助。


这里也描述了这个问题:Using git, how do I ignore a file in one branch but have it committed in another branch? , 但没有可行的解决方案。

最佳答案

我觉得你问错了问题。缩小的脚本是“构建产品”,而不是“源代码”。在我看来,某种“制作安装”过程应该创建它们,而不是将它们放在源代码管理中。但我不在网络空间工作,所以我不知道什么是标准做法。

关于git:忽略生产分支中的源代码和开发中的缩小文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36662318/

相关文章:

git commit 并在工作未完成且我正在移动工作场所时推送

git - Intellij 无法记住我的 git 凭据

Tomcat,两个Java版本和 "invalid constant type: 18"

c# - XmlSerializer 是否支持属性名称更改(版本兼容)

linux - 将 Github repo 推送到其他现有帐户(而不是默认帐户)?

git - 当它说 : An experimental "version 4" format of the index file 时,它在 msysgit 1.7.11 的变更日志中意味着什么

git - 配置 GitLab 以将 SAML OmniAuth 与 Active Directory IdP 结合使用

version-control - IntelliJ IDEA 中的专用库文件夹

visual-studio - 使用 Team Foundation Server 源代码管理回滚更改

c# - 在不重新编译项目的情况下升级 C# 项目中的引用 dll