我有一个产品有两个版本,到目前为止我只能使用编译器标志和 #ifdefs 来管理它们之间的差异。现在我想为每个产品单独设置一个图标。其余的代码库,包括引用图标文件的源代码保持不变。我想将这些开发流程保留在 git 分支中(例如,主分支、专业版和精简版),但是希望专业版和精简版分支 (a) 只包含不同的 icon.png 文件,(b) 自动包含任何在主分支中所做的更改。在 Subversion 中,可以通过分支单个文件(icon.png)来实现此目的。在 Git 中是否有类似的方法?
只需创建一个分支:git checkout -b branchName并更换图标。当然,还需要进行git commit。之后,您可以在父分支(或master分支,如果您喜欢的话)中工作,并使用git rebase将更改拉入branchName。
在Git中,您不能为单个文件创建分支。当您创建分支时,您会为整个存储库创建分支。(当然,与Subversion不同,分支不会在磁盘上创建实际的文件副本,因此分支是便宜的,不会像Subversion分支那样占用太多额外的空间。)
听起来,这个图标更改的分支将是一个长期运行的分支,即,它将合并自主分支的更改,但它的更改不经常合并回主分支,您几乎会一直保留该分支。在这种情况下,您应该设置分支自动跟踪主分支。您可以通过在创建新分支时向git branch或git checkout传递--track选项来设置此项(有关详细信息,请参见git branch的手册页)。
只需分支和提交图标。在 Git 中应该就可以了。然后,当您想要包括其他分支的更改时,只需合并即可。