'固定'git分支中特定版本的文件

时间:2015-08-03 12:20:39

标签: git branch

在git存储库中,假设我的主分支config.json中有一个文件,其中包含有关例如我的托管环境。

master
 - config.json

为了论证,我们假设这个文件是由我的gulp文件读取的,并包含有关是否最小化我的javascripts或包含源映射的信息。

在我的开发分支中,我希望此文件不同

development
 - config.json

因此,无论何时我在主分支上运行gulp,我的javascripts都会被最小化,而当我在开发分支上运行gulp时,我会为我编译的typescript包含源映射。

有没有办法确保config.json不会被错误地从开发合并到master,反之亦然?

几代源代码控制之前,在Visual Source Safe中,这可以通过将特定文件“固定”到特定的“分支”来实现

使用git可以实现(或等效)吗?

2 个答案:

答案 0 :(得分:0)

git获取项目的快照,并且这种“固定”不是一个好的策略。

有几种解决方案可以做你想做的事。

<强> BRANCH

使用3个分支。

  • 官方分会。
  • 官方发展部门。
  • 工作分支

你在工作部门工作。它可以是暂时的,名称可以是“Bug / Requirement tracking System”的跟踪号。

完成后,您将合并到您的官方开发分支中。更改特定文件以使其正常工作。确认测试是否有效。

回到工作分支并合并官方主分支的变更。

符号链接

如果你在Unix / Linux机器上。您可以有两个配置文件。一个用于主分支,另一个用于开发分支。

然后,在每个分支中创建一个符号指向相应的文件。然后,您可以无差别地修改每个文件,而不必担心影响另一个分支的更改。

答案 1 :(得分:0)

如果您对此配置文件的更改不感兴趣,那么它将会发生变化。您可以删除被git跟踪的内容。

git rm yourFile

在此之后,您可以将其添加到.gitignore文件,以便在执行git status或类似命令时看不到它。

执行此操作的问题是,如果您克隆项目,它将不起作用,因为此文件不会,您必须手动创建。