如何忽略每个分支的文件

时间:2015-08-22 12:08:10

标签: git github version-control gulp git-merge

我正在尝试使用Git为我的个人项目创建工作流程。阅读本帖后A successful Git branching model,我计划在所有项目中实施相同的内容。 master分支将包含生产代码和develop分支,我将其用作工作分支。

请考虑以下目录结构。

bower_components
node_modules
dist
gulpfile.js
index.php
assets
  -css
  -js
  -images
package.json
bower.json
.gitignore
README.md

显然,我不希望将bower_componentsnode_modules推送到我的developmaster分支,因此我将其添加到{{1 }}。因此,其他开发人员可以签出开发分支并运行.gitignorenpm install以继续开发。

我希望将bower install分支保持在我不需要master(release)package.jsongulpfile.js等的地方。

因此主分支必须只包含以下指令

bower.json

dist index.php 将缩小为distjs。我想使用css实现上述方案。对于master分支我需要不同的Git,并在git merge期间开发分支或忽略文件。

我已阅读了几个SO问题,请查看此question,其中介绍了使用.gitignore选项忽略分支文件的方法。我试过了,但它似乎没有起作用。这是上述解决方案的link。这个SO答案解释了

  

Git不支持每个分支排除文件

如何使用Git实现上述场景?我应该使用哪个选项?

3 个答案:

答案 0 :(得分:1)

如果将.gitignore添加到存储库,则可以在不同的分支中使用不同的版本。但是你不能合并分支,否则变化将转移到另一个分支。

但是,您可以简单地忽略这些文件,并将忽略的文件添加到存储库中。您只需运行git add --force即可添加文件,即使这些文件被忽略也是如此。请注意,这将无法帮助您确定忽略文件夹中是否有新文件;你必须自己手动添加,Git将无法告诉你有新文件。

否则,这根本不可能,我认为你不应该在存储库中有像缩小的CSS这样的东西。可以从源生成的所有内容都不应该是存储库的一部分。

答案 1 :(得分:0)

我强烈建议将文件bower.jsoncollapsingToolbarLayout放入主版本分支。部署和持续集成系统将需要它们。任何分支主分支的人都需要它们。

答案 2 :(得分:0)

正如一些评论已经提出的那样,我认为你误解了主分支的目的,它是一个稳定版本的源代码,而不是你的稳定代码的“编译”版本。另外,在git下跟踪这些“编译”文件并不是一个好主意。

自动化部署过程更容易,它将完成准备部署代码所需的所有任务,包括清除不需要的文件。通过这种方式,您可以忘记忘记擦除“编译”所需的一些文件。还要记住git它没有为最终用户的ditribution做好准备。