Android Studio更新项目:合并与重build与分支默认

道歉,如果这似乎是多余的,因为我知道关于合并与Rebase有相当多的问题,但似乎没有任何投入“分支默认”以及。

你会得到一个案例,你有多个人同时在一些东西上工作(例如Android Studio中的一个Android应用程序)。 如果有人推到主分支上,并且你想把新的主人拉进来,这样它就不会覆盖你还在工作的工作,还没有提交并推送给主人,那么更新项目/拉的最佳select是什么? 单击“更新项目”时,Android Studio会列出“合并”“重做”和“分支默认”。 从听起来像,我想要做'重build'(其次是“合并”?),但我不完全确定。

3 Solutions collect form web for “Android Studio更新项目:合并与重build与分支默认”

积攒

这里的关键是你有没有意愿的工作,你想保存。 在尝试合并任何内容之前,您应该隐藏您的更改以保存未提交的更改并清除您的工作目录。

运行git stash以存储您的更改。 然后,您应该能够在没有任何问题的情况下进行更改。

在你成功拉动之后,你可以做一个git stash apply重新应用你之前所做的改变。

合并和重新分配

隐藏您的更改只适用于您只有未提交的更改。 如果在某个时候你承诺,但没有推动,你将需要重组或合并。

这个StackOverflow文章有一些很好的信息差异。

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

重新分配需要额外的工作,但由于您没有合并提交,所以基本上会使合并不可见。

再次,在你的情况下,你不应该需要合并或rebase。 简单地说,拉,然后应用藏匿,它应该都是好的。

在这里输入图像说明

根据IntelliJ IDEA documnetatition :

更新types

  • 合并 :select此选项以应用合并策略。 结果与运行git fetch ; git merge的结果是一样的git fetch ; git merge git fetch ; git mergegit pull --no-rebase
  • Rebase :select这个选项来应用rebase策略。 结果与运行git fetch ; git rebase的结果是一样的git fetch ; git rebase git fetch ; git rebase或者git pull --rebase
  • 分支默认值 :select此选项以应用分支的默认命令。 默认命令是在.git/configconfiguration文件的branch.<name>部分中指定的。

在更新之前清理工作树

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

  • 使用隐藏 :select这个选项可以将更改保存在Git存储中,所以你可以使用隐藏在IntelliJ IDEA之外的隐藏的补丁,因为它们是由Git本身生成的。 运用
  • 搁置 :select此选项可将更改保存在书架上。 Shelving是一个IntelliJ IDEA内部操作,通常在IntelliJ IDEA中应用(未保存)从搁置更改生成的补丁。 在IntelliJ IDEA之外应用搁置的更改也是可能的,但需要额外的步骤。

我找不到任何Google文档中这个问题的答案(即工作stream程)……所以这里是我完全从UI中使用Android Studio和Git的实际经验。

(我呕吐在命令行和IDE之间切换的想法 – 这意味着IDE是缺乏的!)

  1. 保存更改:右键单击Project – > Git – > Repository – > Stash Changes。 给它一个名字。
  2. 拉你的同事做的更新:右键单击项目 – > Git – >存储库 – >拉
  3. 右键点击Project – > Git – > Repository – > UnStash Changes – > Apply Stash
  4. 您将看到一个“文件合并冲突”用户界面。 这是您select文件并select合并的地方。

警告

手动合并“合并修订”UI是可怕的 。 一旦你尝试了,你会明白我的意思。 祝你好运,让“同步滚动”实际工作。 我真心希望这个用户界面能够在2015年的前几个星期内解决。

  • Git和Team Foundation Server
  • 如何grep Git提交某个单词的差异或内容?
  • 如何从Git仓库中的提交历史中删除/删除大文件?
  • 如何使用'git reset --hard HEAD'恢复到之前的提交?
  • 没有指定分支的“git push”的默认行为
  • 如何设置一个Git钩子,然后推到ssh://peter@foo.com/~/bar.com.git,它会去〜/ bar.com并做一个git pull?
  • 从不同的仓库申请gradle文件
  • 更改为主分支时出错:我的本地更改将被checkout覆盖
  • 如何在Windows资源pipe理器中添加“打开git-bash here ...”上下文菜单?
  • Git:我如何只列出本地分行?
  • 你如何隐藏未跟踪的文件?