在git存储库中,假设我的主分支config.json中有一个文件,其中包含有关例如我的托管环境。
master
- config.json
为了论证,我们假设这个文件是由我的gulp文件读取的,并包含有关是否最小化我的javascripts或包含源映射的信息。
在我的开发分支中,我希望此文件不同
development
- config.json
因此,无论何时我在主分支上运行gulp,我的javascripts都会被最小化,而当我在开发分支上运行gulp时,我会为我编译的typescript包含源映射。
有没有办法确保config.json不会被错误地从开发合并到master,反之亦然?
几代源代码控制之前,在Visual Source Safe中,这可以通过将特定文件“固定”到特定的“分支”来实现
使用git可以实现(或等效)吗?
答案 0 :(得分:0)
git获取项目的快照,并且这种“固定”不是一个好的策略。
有几种解决方案可以做你想做的事。
<强> BRANCH 强>
使用3个分支。
你在工作部门工作。它可以是暂时的,名称可以是“Bug / Requirement tracking System”的跟踪号。
完成后,您将合并到您的官方开发分支中。更改特定文件以使其正常工作。确认测试是否有效。
回到工作分支并合并官方主分支的变更。
符号链接
如果你在Unix / Linux机器上。您可以有两个配置文件。一个用于主分支,另一个用于开发分支。
然后,在每个分支中创建一个符号指向相应的文件。然后,您可以无差别地修改每个文件,而不必担心影响另一个分支的更改。
答案 1 :(得分:0)
如果您对此配置文件的更改不感兴趣,那么它将会发生变化。您可以删除被git跟踪的内容。
git rm yourFile
在此之后,您可以将其添加到.gitignore
文件,以便在执行git status
或类似命令时看不到它。
执行此操作的问题是,如果您克隆项目,它将不起作用,因为此文件不会,您必须手动创建。