我有一个产品有两个版本,到目前为止我只能使用编译器标志和#ifdefs来管理它们之间的差异。现在我希望每个产品都有一个单独的图标。代码库的其余部分,包括引用图标文件的源代码保持不变。我想将这些开发流保存在git分支中(比如master,pro和lite),但是想要分支pro和lite到(a)只包含不同的icon.png文件,并且(b)自动包含对任何文件所做的所有更改分支主文件中的文件。
在Subversion中,这可以通过分支单个文件(icon.png)来完成。有没有办法在git中做类似的事情?
答案 0 :(得分:2)
只需创建一个分支:git checkout -b branchName并替换图标。当然,git提交。之后,您可以在父分支中工作(或者如果您愿意,可以在master中工作)并使用git rebase将更改提取到branchName
答案 1 :(得分:1)
您无法在Git中为单个文件创建分支。创建分支时,将为整个仓库创建分支。 (当然,与Subversion不同,分支不会创建文件的实际磁盘副本,因此分支很便宜,并且不会占用Subversion分支的额外空间。)
听起来这个图标更改的分支将是一个长期运行的分支,即它将从主服务器合并更改,但它的更改将不会经常合并回主服务器,您将会几乎保持分支永久。在这种情况下,您应该将分支设置为自动跟踪主分支。您可以在创建新分支时将--track
选项传递给git branch
或git checkout
进行设置(有关详细信息,请参阅git branch
的手册页)。
答案 2 :(得分:0)
只需分支并提交图标即可。应该就像Git一样好。然后,当您想要包含来自其他分支的更改时,您只需合并。