Git混淆(“更新”和“拉动”)
我对如何正确使用IntelliJ的VCS选项有点困惑 我们正在进行Git回购,我想了解如何通过尽可能少的步骤完成以下工作:Git混淆(“更新”和“拉动”),git,intellij-idea,Git,Intellij Idea,我对如何正确使用IntelliJ的VCS选项有点困惑 我们正在进行Git回购,我想了解如何通过尽可能少的步骤完成以下工作: 暂存并提交(提示我输入“提交消息”) 拉/推和合并(如果冲突不在同一行,则自动解决同一类中发生的冲突) 事实上,如果两个不同的人在同一个班级工作,有时很明显,如果两个人不在班级的同一部分工作,那么合并应该被接受。但到目前为止,我一直都必须指定在这些情况下合并的方式 我读过一些关于“更新”选项的文章,但我不确定我是否真正理解它的确切功能。它执行拉合并功能?您提出了3个不同的问
我读过一些关于“更新”选项的文章,但我不确定我是否真正理解它的确切功能。它执行拉合并功能?您提出了3个不同的问题,但我将重点讨论最后一个问题(更新选项) 首先,我想指出标题(
Git混乱(“更新”和“拉”)
)与您要寻找的答案不匹配Update
不是git命令——您所指的Update
是IntelliJ的git集成提供的一项功能,它是更新策略(合并或重新基础)的快捷方式
上面列出的每个选项对应一个更新策略:
合并
使用合并更新策略
或
重基
使用重基更新策略
或
如果您想知道合并和重定基址之间的区别,我建议您阅读以下文章:
分支违约
使用分支默认更新策略
以上应用了您在.git/config
配置文件中为指定分支设置的任何更新策略
至于
使用Stash
和使用Shelve
,我本人从未使用过Shelve,但它似乎与git的Stash
相同,只是它由IntelliJ而不是git管理
注意:要指定,如果要从远程存储库获取
master
分支,则需要在上述每个命令的末尾添加origin master
(例如git pull origin master
,git pull--rebase origin master
)
因此,为了回答您的问题,根据您选择的选项,
Update
使用merge
更新策略(git pull
或git fetch
+git merge
)或rebase
更新策略(git-pull-rebase
或git-fetch
+git-rebase
)
它是这样做的:
stash
然后pull--rebase
或pull&&merge
,这取决于您选择的选项。stash
和rebase
对我来说也有些未知。merge
在一个类的第2行有修改,而我的版本有修改时是否会自动解析对第234行进行了修改,这样就不会提示我确认合并是否确实应该发生?我可能忘记指定我来自“GitHub桌面”背景。我主要习惯于按几个按钮。我曾多次使用IntelliJ的VCS进行尝试,但感觉与GitHub桌面相比,我并没有节省太多时间。我只想知道如何使合并在发生冲突时自动合并文件,这很容易修复。现在,根据您的情况也就是说,使用“更新”>“合并”将执行“拉”,但不推动远程回购?如何在一个操作中提交+推送+拉送+合并?@payne在git中,您必须在推送之前拉送(并在需要时手动修复冲突)。因此,您需要的是提交
,拉送
(必要时修复冲突),然后推送。这不能在一个操作中完成。“手动修复冲突”第二部分,我有没有办法设置Git,这样如果冲突发生在同一个类的两个不同部分,它就可以在不需要我干预的情况下将两个部分合并在一起?Git在默认情况下已经是这样工作的。Git不知道类或结构,它只处理代码行。只要对类的更改是n文件的不同行,它将自动处理。只有当同一行发生更改且git不知道该怎么做时,您才需要手动修复冲突。(关于冲突,您可能感兴趣)
git fetch
git merge
git pull
git fetch
git rebase
git pull --rebase