Android Studio更新项目:Merge vs Rebase vs Branch Default

时间:2014-06-24 17:48:18

标签: android git android-studio git-merge

道歉,如果这看起来多余,因为我知道有很多关于Merge和Rebase的问题,但似乎并没有任何可以引入' Branch Default'同样。

您将获得一个案例,您可以同时处理多个人(即Android Studio中的Android应用)。如果有人推送到主分支并且您想要引入新主服务器以便它不会覆盖您仍在处理但尚未提交并推送到的工作,那么更新项目/拉动的最佳选项是什么?主? Android Studio列出了' Merge' '衍合'和'分支默认'点击'更新项目'。听起来,我想做的是Rebase' (其次是' Merge'?),但我并不完全确定。

6 个答案:

答案 0 :(得分:37)

<强>积攒

这里的关键是你有未保存的工作要保存。在尝试合并任何内容之前,您应stash your changes保存未提交的更改并清理工作目录。

运行git stash以存储您的更改。然后,您应该能够毫无问题地提取更改。

成功拔出后,您可以执行git stash apply重新应用之前所做的更改。

合并和重新定位

仅当您只有未提交的更改时,才会隐藏您的更改。如果在某些时候你提交但没有推动,你将需要改变或合并。

This StackOverflow post提供了一些有关差异的重要信息。

一般来说,合并更容易,但有些人认为合并提交会“污染”git历史记录。

重新定位需要额外的工作,但由于你没有合并提交,它实际上会使合并不可见。

同样,在您的情况下,您不需要合并或变基。只需藏匿,拉动,然后应用藏匿处,它应该都很好。

答案 1 :(得分:13)

enter image description here

根据IntelliJ IDEA documnetatition

更新类型

  • 合并:选择此选项可应用合并策略。结果与运行git fetch ; git mergegit pull --no-rebase
  • 的结果相同
  • Rebase :选择此选项可应用rebase策略。结果与运行git fetch ; git rebasegit pull --rebase
  • 的结果相同
  • 分支默认:选择此选项可以应用分支的默认命令。默认命令在branch.<name>配置文件的.git/config部分中指定。

更新前清理工作树

在此区域中,指定在更新前清理工作树时保存更改的方法。更新完成后,将恢复更改。可用选项包括:

  • 使用Stash :选择此选项可将更改保存在Git中 存储,所以你可以应用甚至在外面被隐藏更改的补丁 IntelliJ IDEA,因为它们是由Git本身生成的。使用
  • 搁置:选择此选项可将更改保存在货架上。 Shelving是一个IntelliJ IDEA内部操作,生成补丁 通过搁置更改通常在IntelliJ内部应用(未经保留) 理念。在IntelliJ IDEA之外应用搁置的更改也是可能的 但需要额外的步骤。

答案 2 :(得分:5)

我无法在Google的任何文档中找到这个问题的答案(即工作流程)......所以这是我在UI中完全使用Android Studio和Git的实践经验。

(我呕吐在命令行和IDE之间切换 - 这意味着IDE缺乏!)

  1. 存储您的更改:右键单击项目 - &gt; Git - &gt;存储库 - &gt;藏匿变化。给它起个名字。
  2. 提取您的同事所做的更新:右键单击项目 - &gt; Git - &gt;存储库 - &gt;拉
  3. 将代码更改合并为:右键单击项目 - &gt; Git - &gt;存储库 - &gt; UnStash Changes - &gt;申请Stash
  4. 然后,您将看到“与冲突合并的文件”UI。这是您选择文件并有选择地合并的地方。
  5. 警告

    手动合并“合并修订”用户界面可怕。一旦你尝试了,你就会明白我的意思。祝你好好“同步滚动”实际工作。我真诚地希望在2015年的前几周内解决这个用户界面。

答案 3 :(得分:1)

根据documentation

  

合并:选择此选项可在更新过程中执行merge。这等效于先运行git fetch然后进行git merge或git pull --no-rebase。

  变基:选择此选项可在更新过程中执行rebase。这等效于运行git fetch然后运行git rebase或git pull --rebase(所有本地提交都将放在更新后的上游头的顶部)。

  分支默认:如果您想对不同的分支应用不同的更新策略,请选择此选项。您可以为分支中的每个分支指定默认更新类型。 .git / config配置文件部分。

在此处了解更多-https://www.jetbrains.com/help/idea/apply-changes-from-one-branch-to-another.html

答案 4 :(得分:0)

对于那些正在Android Studio中寻找rebase的人。

VCS> Git>重新设置。

enter image description here

enter image description here

然后单击“重新设置”,“开始重新设置”,“合并”。为了简化过程,请单击“全部”以解决不冲突的更改。

enter image description here

可能存在冲突的更改,请解决它们,直到收到消息为止

enter image description here

如果遇到这些冲突,请单击向左或向右箭头以接受最合适的方法:

enter image description here

单击不必要的交叉标记以忽略,或单击箭头以接受:

enter image description here

如果您接受两个更改,则还可以编辑结果代码,例如,在方法中添加缺少的}

执行此操作,直到解决所有冲突:

enter image description here

点击“应用”。当一次提交中的所有文件都是最新的时,请单击“继续变基”以移至下一次提交。

答案 5 :(得分:-1)

使用android studio终端更新Git项目

  1. git add。
  2. git commit -m“任何”
  3. git push原始主机

这就是我想要从您的帖子中找到答案的原因。所以这就是为什么我写这个答案。