在 git 存储库中,假设我的主分支中有一个文件 config.json,其中包含一些信息,例如我的托管环境。
master
- config.json
为了论证,我们假设此文件由我的 gulp 文件读取,并包含有关是否最小化我的 javascript 或包含源映射的信息。
在我的开发分支中,我希望这个文件不同
development
- config.json
因此,每当我在我的主分支上运行 gulp 时,我的 javascript 都会被最小化,而当我在我的开发分支上运行 gulp 时,我会为我编译的 typescript 包含源映射。
有没有办法确保 config.json 不会被错误地从 development merge 到 master,反之亦然?
几代源代码控制之前,在 Visual Source Safe 中,这可以通过将特定文件“固定”到特定“分支”来实现
这(或类似的东西)可以用 git 实现吗?
最佳答案
git 为您的项目拍摄快照并进行这种“固定”不是一个好策略。
有多种解决方案可以满足您的需求。
分支机构
使用 3 个分支。
- 官方 master 分支。
- 官方开发部门。
- 工作部门
您在工作部门工作。它可以是临时的,名称可以是您的“错误/需求跟踪系统”的跟踪号。
完成后,您将 merge 到您的官方开发分支中。更改特定文件以使其正常工作。通过测试确认它有效。
回到working分支, merge Official master分支的变更。
符号链接(symbolic link)
如果您使用的是 Unix/Linux 机器。您可以有两个配置文件。一个用于 master 分支,另一个用于 develop 分支。
然后,您在每个分支中创建一个符号指向相应的文件。然后你可以不关心地修改每个文件而不用担心影响另一个分支中的更改。
关于git - 在 git 分支中“固定”文件的特定版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31787132/