Git混乱(“更新”和“拉动”)

时间:2018-07-14 20:54:13

标签: git intellij-idea

对于如何正确使用IntelliJ的VCS选项,我有些困惑。

我们正在开发一个Git仓库,我想了解如何以尽可能少的步骤执行以下操作:

  1. 阶段和提交(提示我输入“提交消息”)
  2. 推/推并合并(如果冲突不在同一行,则自动解决在同一类中发生的冲突)

的确,如果两个不同的人在同一个班上工作,有时很明显,如果两个人不在同一个班上工作,那么应该合并。但是到目前为止,我一直必须指定在这种情况下希望合并发生的方式。

我已经阅读了一些有关“更新”选项的信息,但是我不确定我是否真的了解它的确切功能。是拉并合并吗?

1 个答案:

答案 0 :(得分:2)

您要问3个不同的问题,但我将集中讨论最后一个问题(“更新”选项)。

首先,我想指出标题(Git confusion (“Update” and “Pull”))与您要查找的答案不匹配。 Update不是git命令-您所指的update是IntelliJ的git集成提供的功能,它是更新策略(合并或重新设置)的快捷方式。

Update Project

Options

上面列出的每个选项都对应一种更新策略:

合并

  

使用合并更新策略

git fetch
git merge

git pull

变基

  

使用变基更新策略

git fetch
git rebase

git pull --rebase

如果您想了解合并和重新设置之间的区别,建议您阅读这篇文章:Merging vs. Rebasing

默认分支

  

使用分支默认更新策略

以上内容适用于您在.git/config配置文件中为指定分支设置的所有更新策略。


对于Using StashUsing Shelve,我从未使用过自己的书架,但它与git的stash相同,只是它由IntelliJ而不是git管理。


注意:要指定,如果要从远程存储库中获取master分支,则需要在上述每个命令的末尾添加origin master(例如git pull origin mastergit pull --rebase origin master)。


因此,为回答您的问题,根据您选择的选项,Update使用merge更新策略(git pull git fetch + git merge)或rebase更新策略(git pull --rebase git fetch + git rebase)。

reference