Android Studio更新项目:合并vs变基vs分支默认

yjghlzjz  于 2023-04-21  发布在  Android
关注(0)|答案(6)|浏览(204)

抱歉,如果这似乎是多余的,因为我知道有相当数量的问题,关于合并与Rebase,但似乎没有任何扔在'分支默认'以及。
你有一个案例,你有多个人在做某件事(即Android Studio中的Android应用)。如果有人推送到master分支,而您希望拉入新的master分支,以便它不会覆盖您仍在处理的工作,并且尚未提交并推送到master分支,那么更新项目/拉入的最佳选项是什么?Android Studio列出了“合并”“Rebase”和“从它听起来像什么,我想做'Rebase'(其次是'合并'?),但我不完全确定。

sqserrrh

sqserrrh1#

这里的关键是你有未提交的工作要保存。在尝试合并任何东西之前,你应该stash your changes来保存未提交的更改并清理工作目录。
运行git stash来保存你的修改。然后你就可以毫无问题地提取修改了。
成功拉取后,您可以执行git stash apply以重新应用在拉取之前所做的更改。

合并和变基

只有当你只有 * 未提交 * 的更改时,才能将更改存储起来。如果在某个时候你提交了但没有推送,你将需要变基或合并。
This StackOverflow post有一些关于差异的很好的信息。
一般来说,合并更容易,但有些人认为合并提交会“污染”git历史。
换基需要额外的工作,但是因为你没有合并提交,它本质上会使合并不可见。
同样,在你的例子中,你不需要合并或者变基,简单的stash,pull,然后应用stash,就可以了。

lrl1mhuk

lrl1mhuk2#

根据IntelliJ IDEA documentation

更新类型

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

更新前清理工作树

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

*使用Stash:选择此选项可将更改保存在Git stash中,因此即使在IntelliJ IDEA之外,您也可以应用具有隐藏更改的补丁,因为它们是由Git本身生成的。
*使用Shelve:选择此选项可将更改保存在工具架上。搁置是IntelliJ IDEA内部操作,从搁置的更改生成的修补程序通常在IntelliJ IDEA内部应用(取消搁置)。也可以在IntelliJ IDEA外部应用搁置的更改,但需要额外的步骤。

62lalag4

62lalag43#

我无法在Google的任何文档中找到这个问题的答案(即工作流程)......所以这里是我完全从UI使用Android Studio和Git的实践经验。
(一想到在命令行和IDE之间切换,我就吐了--这意味着IDE缺乏!)
1.通过以下方式存储更改:右键单击Project -〉Git -〉Repository -〉Stash Changes。给予它一个名字。
1.提取您的同事对以下内容执行的更新:右键单击Project -〉Git -〉Repository -〉Pull
1.使用以下命令合并回代码更改:右键单击Project -〉Git -〉Repository -〉UnStash Changes -〉Apply Stash
1.然后你会看到一个“文件合并与冲突”的用户界面。这是你选择一个文件和选择性合并。

警告

手动合并“合并修订”UI是可怕.一旦你尝试它,你会明白我的意思.祝你好运试图让“同步滚动”实际工作.我真诚地希望这个UI是在2015年的头几个星期内解决.

nnsrf1az

nnsrf1az4#

Android Studio:合并、变基、分支默认

根据文件:

合并:选择此选项,更新时执行merge,相当于运行

git fetch,然后是git mergegit pull --no-rebase

Rebase:选择此选项,更新时执行rebase,相当于运行

git fetch,然后是git rebase,或者`git pull --rebase(所有本地提交将被放在更新的上游头部的顶部)。

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

Git Merge vs Rebase(https://stackoverflow.com/a/59267441/4770877)
阅读更多here

rfbsl7qr

rfbsl7qr5#

对于那些在Android Studio中寻找rebase的人。
VCS〉Git〉Rebase。

然后单击“Rebase”、“Start Rebase”、“Merge”。要简化过程,请单击“All”以解决不冲突的更改。

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

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

单击一个不必要的更改为“忽略”的叉号或一个箭头以接受:

如果您接受这两个更改,您还可以编辑生成的代码,例如,在方法中添加缺少的}
执行此操作,直到所有冲突都得到解决:

点击“应用”。当一个提交中的所有文件都是最新的时,点击“继续rebasing”移动到下一个提交。

92dk7w1h

92dk7w1h6#

使用android studio终端更新Git项目

  1. git add .
  2. git commit -m“anything”
  3. git push origin master
    这就是我想从你的帖子中找到答案的原因。所以这就是为什么我写这个答案。

相关问题