在 git 合并 upstream/master 之后使用 Sublime Text 中更新的上游和隐藏的更改解决 Git 冲突
Resolve Git conflict after git merge upstream/master using both updated upstream and stashed changes in Sublime Text
我遇到了 Git 冲突问题。我对从另一个项目派生的本地仓库进行了一些(未提交的)更改。然后我决定从原始存储库中获取更改——它告诉我必须存储更改,我照做了。现在,当我尝试 "git stash pop" 时,它说与一个文件有冲突,因为它有来自上游的更改加上我自己的更改。
我想做的实际上是保留上游的更改,并保留我自己的更改。我觉得这有一个明显的答案,但对我来说并不清楚。我在 Whosebug 上查找了几个类似的问题,但找不到确切的解决方案。
我的猜测是我必须手动更改 Sublime Text 中的文件(或者进行硬重置?)但我不确定如何处理它。例如,“<<<< update upstream”等让我感到困惑——我是否在 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> 标签 - 我想要两者都保留。
提前致谢!
<<<<<<< Updated upstream
和 =======
之间显示的文本是在遥控器上修改的版本,而 =======
和 >>>>>>> Stashed changes
之间的文本是您的更改。
此时您要做的是弄清楚如何将您自己的更改和远程更改整合成一致的内容。 Git 无法为您完成,因为两边都修改了同一个块。该合并需要您作为程序员进行分析。因此,将 <<<<<<< ...
和 >>>>>>> ...
之间的所有内容替换为您认为正确的内容,删除冲突标记,确保测试结果,这就是已解决的冲突。
我遇到了 Git 冲突问题。我对从另一个项目派生的本地仓库进行了一些(未提交的)更改。然后我决定从原始存储库中获取更改——它告诉我必须存储更改,我照做了。现在,当我尝试 "git stash pop" 时,它说与一个文件有冲突,因为它有来自上游的更改加上我自己的更改。
我想做的实际上是保留上游的更改,并保留我自己的更改。我觉得这有一个明显的答案,但对我来说并不清楚。我在 Whosebug 上查找了几个类似的问题,但找不到确切的解决方案。
我的猜测是我必须手动更改 Sublime Text 中的文件(或者进行硬重置?)但我不确定如何处理它。例如,“<<<< update upstream”等让我感到困惑——我是否在 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> 标签 - 我想要两者都保留。
提前致谢!
<<<<<<< Updated upstream
和 =======
之间显示的文本是在遥控器上修改的版本,而 =======
和 >>>>>>> Stashed changes
之间的文本是您的更改。
此时您要做的是弄清楚如何将您自己的更改和远程更改整合成一致的内容。 Git 无法为您完成,因为两边都修改了同一个块。该合并需要您作为程序员进行分析。因此,将 <<<<<<< ...
和 >>>>>>> ...
之间的所有内容替换为您认为正确的内容,删除冲突标记,确保测试结果,这就是已解决的冲突。