在git分支中'固定'一个文件的特定版本
在一个git仓库中,可以说我的主分支config.json中有一个文件,其中包含一些关于例如文件的信息。我的托管环境。在git分支中'固定'一个文件的特定版本
master
- config.json
为了讨论的方便,让我们假设该文件是由我一饮而尽,文件读取,并包含有关是否要降低我的JavaScript或包含源地图信息。
在我的开发分支,我想这个文件是不同
development
- config.json
所以,每当我在我的主枝运行一饮而尽,我的JavaScript的最小化,当我在我的开发分支运行一饮而尽,同时,我包括我编译后的打字稿的源地图。
有没有办法确保config.json不会被错误地从开发合并到master,反之亦然?
源控制的几代前,在Visual源安全,这可以通过“拼接”特定文件到一个特定的“分支”
实现这是(或等价的东西),可以使用Git?
git拍摄你的项目的快照,做这种“固定”不是一个好策略。
有几种解决方案可以做你想做的。
分公司
使用3个分支。
- 官方主分支。
- 官方发展部门。
- 工作分支
您在工作分支中工作。它可以是暂时的,名称可以是“Bug /需求跟踪系统”的跟踪编号。
完成后,您将合并到您的官方开发分支中。更改特定的文件以适当地工作。确认您的测试是否有效。
回到工作分支并合并官方主分支中的更改。
符号链接
如果你是在Unix/Linux机器。你可以有两个配置文件。一个用于master分支,另一个用于开发分支。
然后,在每个分支中创建一个符号指向相应的文件。然后,您可以无差别地修改每个文件,而无需担心影响其他分支中的更改。
如果你对这个配置文件的改变不感兴趣,它将会改变。你可以删除它被git跟踪。
git rm yourFile
并在此之后,你可以把它添加到您的.gitignore
文件,没有看到它时,你做git status
或类似的命令。
这样做的问题是,如果你克隆你的项目,它不会工作,因为这个文件不会,你将不得不手动创建。
感谢您的回复,不幸的是它不能解决我的问题。即使这不是一个好策略(为什么这不是一个好策略的解释,我们将不胜感激),我仍然有兴趣知道它是否可行(使用git功能,而不是外部选项,如符号链接) – havardhu
坏政策的原因是,如果你想回到以前的图片/图像/ stateOfYourProject这是不可能的,因为你不知道这个文件有变化。我很抱歉,我无法帮助你。 – blashser