一些背景故事!
我一直在使用 git 为一个开源包做出贡献,我在这方面有点新手。我知道一些基本的东西。此外,我还读到如果发生合并冲突,我们可以遍历文件,标记可以帮助我们找到同一文件的两个版本中相互冲突的代码块。
最近第一次遇到合并冲突,是在 Jupyter notebook 文件(.ipynb)上。但是,合并冲突的标记使 Jupyter 无法读取笔记本。所以,我尝试了 JSON 编辑器和 VS CODE 和 Notepad++。虽然我现在可以看到该文件,但它真的很乱,因为它不仅包含 Jupyter notebook 的所有元数据,而且甚至在执行次数方面也显示冲突。另外,如果笔记本中有一个图形作为一个单元格的输出,它会被转换成很多字符,向下滚动并浏览它们是很头疼的。
在搜索 google 和 stackoverflow 并与项目所有者讨论问题后,我们决定采取另一种方法。但是,它不起作用。(我在下面进行了解释,但首先我需要提供更多信息。请耐心等待)
根据提交的历史记录,我应该是在本地通过更改 PARENT 分支上的相同文件而在本地创建此类冲突的人,因为没有人在上游更改它(在原始存储库中)
因此,请让我首先简要介绍一下分支和我对文件所做的一些更改。
branch-Asub-branch-of-Anotebook-filesub-branch-of-A成branch-A在 my 中branch-A,我做到了:git push origin branch-A但我non-fast-forward出错了。这意味着发生了分歧。对?所以,我确实git pull origin branch-A解决了它,但是我遇到了notebook-file.
替代方案
所以,我被告知我可以将文件复制到本地 git 存储库之外的某个地方,然后git checkout notebook-file在发生分歧的父节点中获取文件。对?然后,如果我这样做git pull ...应该没有问题(然后我可以包含该复制文件的更改)
但...
我再次遇到合并冲突错误。我疯了,尝试了几件事,但仍然没有。
我附上了下面的git日志。我所说的分支是Snippets_Tutorial,而它的子分支是 …