[英]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.