如何在一个git仓库中管理多个相关的Android项目

时间:2015-05-12 20:33:44

标签: android git version-control

所以我基于相同的Android代码构建多个应用程序,但问题是我不确定如何管理这些。如果我有多个分支,我不希望主分支覆盖另一个项目的manifest.xml(以及该项目的一些其他特定文件)。有没有办法锁定另一个分支中的cretin文件被Merge覆盖?或者有选择地合并文件的方法?

我正在使用Git作为我的源代码控件。在应用程序之间只有10个左右的文件可以更改...主要与主题有关。任何有关这方面的帮助将不胜感激。

如果此问题类型不属于Stack Overflow,请告诉我。我很乐意搬家。

1 个答案:

答案 0 :(得分:1)

我假设所有项目分支的“根”分支是master,并且您将特定的应用项目分支到分支project_a

如果您更改分支project_a中的清单文件,然后执行git merge master,那么您将不会遇到任何问题(project_a分支中不会发生任何变化。)

merge不会简单地复制来自另一个分支的所有差异。它还会查看其他因素,例如提交的时间戳。

例如:

cd git-test
git init
echo "hello" > manifest.txt
git add .
git commit -m "initial commit"

git checkout -b project_a
echo "world" > manifest.txt 
git commit -am "change in project branch"
git merge master #  no effect

最后一行无效,因为project_a分支中manifest.txt的更改比master分支中manifest.txt的更改更新。