使用Sublime Text中更新的上游和隐藏更改在git合并上游/主服务器后解决Git冲突

时间:2019-07-05 13:17:30

标签: git sublimetext3 sublime-text-plugin git-merge-conflict

我遇到了Git冲突。我对本地存储库中的另一个项目进行了一些(未提交的)更改。然后,我决定从原始存储库中获取更改-它告诉我必须隐藏更改,而我确实这样做。现在,当我尝试“ git stash pop”时,它说与一个文件存在冲突,因为它具有上游的更改以及我自己的更改。

我要做的实际上是保留上游更改,并保留我自己的更改。我觉得这有一个明显的答案,但对我来说还不清楚。我在Stackoverflow上查找了几个类似的问题,但找不到确切的解决方案。

我的猜测是我必须手动更改Sublime Text中的文件(或进行硬重置吗?),但是我不确定如何处理它。例如,说“ <<<<的部分更新了上游”等让我感到困惑-我可以在Sublime Text中删除它们吗?我对将其弄乱感到有些紧张,尤其是当我想保留所有更改(上游加上我的更改)并且不想丢失任何东西时。

这是Sublime Text中文件的一部分,显示了冲突:

<<<<<<< Updated upstream
    <>
      <GithubLink color={values.bgColor} />

      <Wrapper>
        <Output values={values} />
        <ActionWrapper>
          <InputWrapper values={values} setters={setters} />
        </ActionWrapper>
      </Wrapper>
    </>
=======
    <Wrapper>
      <Output values={values} />
      <ActionWrapper>
        <InputWrapper values={values} setters={setters} />
        <Dropzone onDrop={acceptedFiles => console.log(acceptedFiles)}>
           {({getRootProps, getInputProps}) => (
              <section>
                 <DropZoneDiv {...getRootProps()}>
                    <input {...getInputProps()} />
                    <p>Drag 'n' drop some files here, or click to select 
                    files</p>
                 </DropZoneDiv>
              </section>
            )}
        </Dropzone>
      </ActionWrapper>
    </Wrapper>
>>>>>>> Stashed changes

我对此进行了稍微的编辑,以使其更具可读性,但是基本上您可以看到上游添加了<\ GithubLink>标签,而我的更改也添加了<\ Dropzone>标签-我想保留两者。

谢谢!

1 个答案:

答案 0 :(得分:2)

<<<<<<< Updated upstream=======之间显示的文本是在遥控器上修改的版本,而=======>>>>>>> Stashed changes之间的文本是您的更改。

这时您要做的是弄清楚如何将自己的更改和遥控器上的更改集成到一致的内容中。 Git无法为您做到这一点,因为在两侧都修改了同一块。合并需要您作为程序员进行分析。因此,以您认为正确的内容替换<<<<<<< ...>>>>>>> ...之间的所有内容,删除冲突标记,确保您测试了结果,这就是已解决的冲突。