我是WorldPainter(Minecraft的地图生成器)的作者。我有一套git存储库,可以在家中和工作中使用WorldPainter。我家工作站([Home])上有一个完整的存储库,工作中有一个存储库([工作])。为了在它们之间传输更改,我在家中的网络共享([Net])和USB记忆棒上的另一个裸存储库([USB])上设置了一个裸存储库。 [Home]和[USB]将[Net]作为远程存储库,[Work]将[USB]作为远程存储库。
此外,我认为它可能不相关,[Net]将GitHub作为远程存储库。
当我想将更改从家庭转移到工作时我会这样做:
[主页] -push-> [Net]< -fetch- [USB]< -pull- [工作]
以另一种方式转移更改:
[工作] -push-> [USB] -push-> [净]< -pull- [主页]
到目前为止这已经很好用了,但今天从[Net]到[USB]的提取出错了以下消息:
remote: Counting objects: 13, done.
remote: Compressing objects: 100% (11/11), done.
remote: Total 13 (delta 7), reused 0 (delta 0)
Unpacking objects: 100% (13/13), done.
From file:///mnt/git-repos/WorldPainter-public
! [rejected] master -> master (non-fast-forward)
从[USB]到[Net]的推送现在失败并显示类似消息。
我发现git非常复杂且反直觉,此时我迷失了。如果我理解正确的情况,这很可能意味着存在需要合并的冲突变化,但由于[USB]是一个裸存储库,我无法合并它们。
我可能在错误的顺序中做了一些事情来解决这种情况,但我该如何解决呢?有没有办法暂时将工作目录添加到[USB],以便我可以在那里合并更改?我可以将问题移到其中一个 具有工作目录并在那里解决问题的存储库吗?我知道我可以 - 强制获取,但这不是很优雅,可能会导致失去变化,对吗?