簡體   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