如果这似乎是多余的,我深表歉意,因为我知道关于 Merge vs Rebase 有很多问题,但似乎也没有任何关于“Branch Default”的问题。
给你一个案例,你有多个人同时在做某事(即 Android Studio 中的一个 Android 应用程序)。如果有人推送到主分支并且您想要拉入新的主分支,那么更新项目/拉取的最佳选择是什么,这样它就不会覆盖您仍在处理但尚未提交并推送到主分支的工作?单击“更新项目”时,Android Studio 会列出“合并”、“变基”和“分支默认值”。听起来,我想做'Rebase'(然后是'Merge'?),但我不完全确定。
藏匿
这里的关键是您有未提交的工作要保存。在尝试合并任何内容之前,您应该stash your changes保存未提交的更改并清理您的工作目录。
运行 git stash
以存储您的更改。然后,您应该能够毫无问题地提取更改。
成功提取后,您可以执行 git stash apply
以重新应用您在提取之前所做的更改。
合并和变基
仅当您只有未提交的更改时,才可以隐藏更改。如果在某个时候您提交但没有推送,您将需要变基或合并。
This StackOverflow post 提供了一些关于差异的重要信息。
一般来说,合并更容易,但有些人认为它通过合并提交“污染”了 git 历史。
变基需要额外的工作,但由于您没有合并提交,它本质上会使合并不可见。
同样,在您的情况下,您不需要合并或变基。简单地藏起来,拉,然后应用藏起来,一切都应该很好。
https://i.stack.imgur.com/HaaFt.png
根据 IntelliJ IDEA documentation:
更新类型
合并:选择此选项以应用合并策略。结果与运行 git fetch 的结果相同; git merge 或 git pull --no-rebase。
变基:选择此选项以应用变基策略。结果与运行 git fetch 的结果相同; git rebase 或 git pull --rebase。
分支默认值:选择此选项以应用分支的默认命令。默认命令在 .git/config 配置文件的 branch.
更新前清理工作树
在此区域中,指定在更新前清理工作树时保存更改的方法。更新完成后将恢复更改。可用的选项有:
使用 Stash:选择此选项可将更改保存在 Git stash 中,因此即使在 IntelliJ IDEA 之外,您也可以应用已更改的 stashed 补丁,因为它们是由 Git 本身生成的。
使用搁架:选择此选项可将更改保存在搁架上。搁置是 IntelliJ IDEA 的内部操作,由搁置的更改生成的补丁通常在 IntelliJ IDEA 内部应用(未搁置)。在 IntelliJ IDEA 之外应用搁置的更改也是可能的,但需要额外的步骤。
.git/config
我在 Google 的任何文档中都找不到这个问题的答案(即工作流程)……所以这是我完全从 UI 中使用 Android Studio 和 Git 的实践经验。
(一想到在命令行和 IDE 之间切换,我就吐了 - 这意味着缺少 IDE!)
存储更改:右键单击项目 -> Git -> 存储库 -> 存储更改。给它一个名字。拉取您同事使用的更新:右键单击项目 -> Git -> 存储库 -> 拉取合并您的代码更改:右键单击项目 -> Git -> 存储库 -> UnStash Changes -> Apply Stash 然后您将看到“与冲突合并的文件”用户界面。这是您选择文件并有选择地合并的地方。
警告
手动合并“合并修订”用户界面非常糟糕。一旦你尝试它,你就会明白我的意思。祝“同步滚动”真正起作用。我真诚地希望这个 UI 在 2015 年的最初几周内得到解决。
合并:选择此选项可在更新期间执行合并。这相当于运行 git fetch 然后运行 git merge 或 git pull --no-rebase。变基:选择此选项可在更新期间执行变基。这相当于运行 git fetch 然后运行 git rebase 或 `git pull --rebase (所有本地提交都将放在更新的上游头部之上)。分支默认:如果您想为不同的分支应用不同的更新策略,请选择此选项。您可以在 .git/config 配置文件的 branch.
阅读更多here
对于那些在 Android Studio 中寻找 rebase
的人。
VCS > Git > 变基。
https://i.stack.imgur.com/UjjKP.png
https://i.stack.imgur.com/xA12N.png
然后单击“变基”、“开始变基”、“合并”。要简化流程,请单击“全部”以解决不冲突的更改。
https://i.stack.imgur.com/Prtm0.png
可能存在冲突的更改,请解决它们,直到您收到消息:
https://i.stack.imgur.com/sNPom.png
如果您遇到这些冲突,请单击左箭头或右箭头接受最合适的:
https://i.stack.imgur.com/HwntD.png
单击交叉以忽略不必要的更改或箭头以接受:
https://i.stack.imgur.com/PmSky.png
如果您接受这两项更改,您还可以编辑生成的代码,例如,在方法中添加缺少的 }
。
这样做直到所有冲突都得到解决:
https://i.stack.imgur.com/xuOTc.png
点击“应用”。当一个提交中的所有文件都是最新的时,单击“继续变基”以移动到下一个提交。
使用 android studio 终端更新 Git 项目
混帐添加。 git commit -m "anything" git push origin master
这就是我想从您的帖子中找到答案的原因。所以这就是我写这个答案的原因。
不定期副业成功案例分享