【问题标题】:How can I manage multiple related Android projects in one git repo如何在一个 git repo 中管理多个相关的 Android 项目
【发布时间】:2015-07-23 22:02:22
【问题描述】:

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

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

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

【问题讨论】:

  • 如果您使用 gradle,您可以为共享相同代码的不同应用程序提供不同的风格。在这种情况下,您不必依赖存储库。但是,如果您不使用 gradle,我担心@Martin Konecny 的答案是正确的方法

标签: android git version-control


【解决方案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 的更改更新。

【讨论】:

    猜你喜欢
    • 2010-11-20
    • 2023-03-11
    • 1970-01-01
    • 2013-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-22
    • 2014-11-11
    相关资源
    最近更新 更多