Android Studio Update Project: Merge vs Rebase vs Branch Default
抱歉,如果这看起来是多余的,因为我知道有相当多的问题关于合并和重新平衡,但似乎没有任何抛出'分行违约'以及。
你会遇到这样一个情况:你有多个人同时在做某件事情(即Android Studio中的Android应用程序)。如果有人推到主分支,并且您希望拉入新的主分支,这样它就不会覆盖您仍在处理的工作,并且尚未提交并推到主分支,那么更新项目/拉取的最佳选项是什么?Android Studio在单击"更新项目"时会列出"合并""重新平衡"和"分支默认值"。听上去,我想做"重新平衡"(后面跟着"合并")?但我不完全确定。
藏匿
这里的关键是您有未提交的要保存的工作。在尝试合并中的任何内容之前,应先存储更改以保存未提交的更改并清理工作目录。
运行
成功拉取之后,可以执行
合并和再平衡
仅当您只有未提交的更改时,才可以保存更改。如果在某个时刻你承诺了但没有推动你将需要重新平衡或合并。
这个stackoverflow帖子有一些关于区别的重要信息。
一般来说,合并更容易,但一些人认为它"污染"了带有合并提交的Git历史。
重新平衡需要额外的工作,但是由于您没有合并提交,它基本上将使合并不可见。
同样,在您的情况下,您不需要合并或重新平衡。简单的藏起来,拉,然后应用藏起来,它应该都是好的。
。
根据Intellij理念文档:
更新类型
- 合并:选择此选项以应用合并策略。结果与运行
git fetch ; git merge 或git pull --no-rebase 的结果一致。 - REBASE:选择此选项以应用REBASE策略。结果与运行
git fetch ; git rebase 或git pull --rebase 的结果一致。 - 分支默认值:选择此选项可应用分支的默认命令。默认命令在
.git/config 配置文件的branch. 部分中指定。
更新前清理工作树
在此区域中,指定在更新前清理工作树时保存更改的方法。更新完成后将还原更改。可用选项包括:
- 使用stash:选择此选项将更改保存在Git中藏起来,这样你就可以应用贴片,即使在外面也可以改变藏起来的东西。Intellij理念,因为它们是由Git本身生成的。使用
- 搁置:选择此选项可将更改保存在工具架上。搁置是Intellij IDEA内部操作,生成修补程序来自搁置的更改通常在Intellij中应用(取消搁置)想法。也可以在Intellij思想之外应用搁置的更改但需要额外的步骤。
我在谷歌的任何文档中都找不到这个问题的答案(即工作流程)。下面是我在使用Android Studio和Git时的实际经验。
(一想到命令行和IDE之间的切换,我就呕吐——这意味着缺少IDE!)
警告
手动合并"合并修订"用户界面很糟糕。一旦你尝试了,你就会明白我的意思。祝你"同步滚动"工作顺利。我真诚地希望这个用户界面能在2015年的头几个星期内解决。
根据文件:
Merge: select this option to perform merge during the update. This is equivalent to running
git fetch and thengit merge , orgit pull --no-rebase .Rebase: select this option to perform rebase during the update. This is equivalent to running
git fetch and thengit rebase , or `git pull --rebase (all local commits will be put on top of the updated upstream head).Branch Default: select this option if you want to apply different update strategies for different branches. You can specify the default update type for each branch in the
branch. section of the.git/config configuration file.
号
在此处阅读更多信息