【发布时间】:2018-11-06 08:46:30
【问题描述】:
请注意我的问题不是“我应该怎么做?”,因为我已经阅读了有关堆栈溢出的其他问题。我知道我必须提供 --allow-unrelated-histories 参数。
我的问题是“为什么”。
这是我使用 git 版本 2.17.0.windows.1 完成的操作。 请注意,Linux 上的 git 版本 2.7.4 不会发生此错误:
我首先在 gitlab 上创建了一个空的仓库。 然后,我有 2 个用户,在 2 台不同的计算机上:
第一个用户:
git clone <repository_url>
cd myproject
touch file1.cpp
git add file1.cpp
git commit -m "file 1 creation"
git push origin master
第二个用户:
git clone <repository_url>
cd myproject
touch file2.cpp
git add file2.cpp
git commit -m "file 2 creation"
git pull
此时,我有这个错误信息:
致命:拒绝合并无关的历史
我不明白为什么我在 git windows 版本上而不是在 Linux 上出现此错误消息...
谢谢
【问题讨论】:
-
第一个用户没有推也没有拉。这意味着他们与其他人隔离,所以他们是无关紧要的。那只剩下第二个用户了。如果其他人从根本上改变了存储库的历史,就可能发生这种情况。你能告诉我们第二个用户的
git log --oneline --graph --decorate吗?您正在寻找类似 @987654325@ 和origin/master彼此没有联系的东西。 -
对不起,我犯了一个错误。第一个用户正在推送。我已经添加了缺失的行
-
仍然不应该有那种效果。
git log --oneline --graph --decorate --all会很有用。 -
这可能会有所帮助。 stackoverflow.com/questions/37937984/… 请注意,您使用的是 2.17 和 2.7,在更改时正好跨过 2.9 行。
标签: git