所以我基于相同的Android代码构建多个应用程序,但问题是我不确定如何管理这些。如果我有多个分支,我不希望主分支覆盖另一个项目的manifest.xml(以及该项目的一些其他特定文件)。有没有办法锁定另一个分支中的cretin文件被Merge覆盖?或者有选择地合并文件的方法?
我正在使用Git作为我的源代码控件。在应用程序之间只有10个左右的文件可以更改...主要与主题有关。任何有关这方面的帮助将不胜感激。
如果此问题类型不属于Stack Overflow,请告诉我。我很乐意搬家。
答案 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的更改更新。