2015-05-09 158 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