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

Git混淆(“更新”和“拉动”),git,intellij-idea,Git,Intellij Idea,我对如何正确使用IntelliJ的VCS选项有点困惑 我们正在进行Git回购,我想了解如何通过尽可能少的步骤完成以下工作: 暂存并提交(提示我输入“提交消息”) 拉/推和合并(如果冲突不在同一行,则自动解决同一类中发生的冲突) 事实上,如果两个不同的人在同一个班级工作,有时很明显,如果两个人不在班级的同一部分工作,那么合并应该被接受。但到目前为止,我一直都必须指定在这些情况下合并的方式 我读过一些关于“更新”选项的文章,但我不确定我是否真正理解它的确切功能。它执行拉合并功能?您提出了3个不同的问

我对如何正确使用IntelliJ的VCS选项有点困惑

我们正在进行Git回购,我想了解如何通过尽可能少的步骤完成以下工作:

  • 暂存并提交(提示我输入“提交消息”)
  • 拉/推和合并(如果冲突不在同一行,则自动解决同一类中发生的冲突)
  • 事实上,如果两个不同的人在同一个班级工作,有时很明显,如果两个人不在班级的同一部分工作,那么合并应该被接受。但到目前为止,我一直都必须指定在这些情况下合并的方式


    我读过一些关于“更新”选项的文章,但我不确定我是否真正理解它的确切功能。它执行拉合并功能?

    您提出了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