繁体   English   中英

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

[英]git: ignore source in production branch and minified files in development

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

现在,我有两个分支:生产和development master

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

很感谢任何形式的帮助。


这里还描述了这个问题: 使用git,我如何忽略一个分支中的文件但是在另一个分支中提交它? ,但没有可行的解决方案。

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

一种解决方案是避免在分支之间来回切换(避免“破坏一切”部分)

从目前签出master仓库中,做(使用git 2.5+)a:

git worktree add ..\dev dev

使用新的git worktree命令 ,您将获得第二个工作树,链接到您的克隆(仅一次)repo。
请参阅“ 使用Git多个工作目录? ”。

在两个工作树(每个分支一个)中,您可以根据需要维护.gitignore

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM