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

How can I manage multiple related Android projects in one git repo

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

我使用 Git 作为我的源代码控制。应用程序之间可能只有 10 个左右的文件发生变化……主要与主题有关。对此的任何帮助将不胜感激。

如果此问题类型不属于 Stack Overflow,也请告诉我。我很乐意移动它。

我假设您的所有项目分支的 "root" 分支是 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 的更改更新。