繁体   English   中英

Git 混淆(“更新”和“拉取”)

[英]Git confusion (“Update” and “Pull”)

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

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

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

事实上,如果两个不同的人在同一个班级工作,有时如果两个人没有在班级的同一部分工作,显然应该接受合并。 然而到目前为止,我总是不得不指定我希望在这些情况下发生合并的方式。

我已经阅读了一些关于“更新”选项的内容,但我不确定我是否真的理解它到底做了什么。 它执行拉取和合并吗?

您问了 3 个不同的问题,但我将重点关注最后一个(更新选项)。

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

更新项目

选项

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

合并

使用合并更新策略

git fetch
git merge

或者

git pull

变基

使用 rebase 更新策略

git fetch
git rebase

或者

git pull --rebase

如果你想知道合并和变基的区别,我建议你阅读这篇文章:合并与变基

分支默认

使用分支默认更新策略

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


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


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


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

参考

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM