2015-05-09 153 views
2

目標:只包括指定分支上生成的文件。Git忽略每個分支的文件

原因:

  1. 生成的文件會導致衝突
  2. 通過Git的部署僅僅是在某些環境選項

所以,在當前的工作流程,主要分支是開發,有兩個部署分支:舞臺和刺激。

我預期的那樣工作是增加

build/* 

[branch "stage, prod"] 
    !build/* 

到的.gitignore或git的/信息/排除將意味着我在Dev分支運行rake build後,建/不顯示已更改的文件運行時git status 。在舞臺和prod分支上,build /會顯示更改的文件。

但是,我嘗試過的所有變化都沒有奏效。

這似乎是非常典型的工作流程,是否有一些git魔法我失蹤或人們如何處理這種情況?

回答

6

.gitignore是一個像任何其他文件一樣簽入存儲庫的文件。檢出一個分支,將.gitignore更改爲該分支想要的方式,然後進行提交。這種改變只會影響該分支。

+1

這個工作,但意味着每次我重新啓動階段或產品,將在.gitignore解決衝突。 –

+0

不是一個很大的交易,但我想要建立的是一個死的簡單的部署過程,'git checkout stage','rake build','git add','git commit','git push'。一個web鉤子發佈到服務器,然後轉到提取階段分支。有沒有辦法避免.gitignore中的rebase衝突? –

+0

@ShaeKuronen Git不是一個發佈管理員,如果你試圖將其作爲一個發佈管理器,它就不會很好。無論如何,您可能不希望部署所有的開發工具,並將工件和完整的開發源代碼部署到服務器上。添加一個構建發行版的rake任務,在Git中標記它,並將該tarball/package發送到服務器。 – Schwern