我无法找到一个合理的解决方案,因为我认为这是一项非常简单的任务。假设我的项目中有一些 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
放入生产环境时我不想拥有它们),但保持最小化。
出于某种原因,当我从 master
到 development
来回切换时,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/