试图从我的Github存储库中提取文件:“拒绝合并不相关的历史”
我正在学习git,我正在关注Git社区书。
以前(很久以前)我在Github上创build了一个公共仓库,附带一些文件。 现在,我在当前的计算机上设置了一个本地Git存储库,并提交了一些文件。 然后我添加了一个远程指向我的Github页面:
[root@osboxes c]# git remote add learnc https://github.com/michaelklachko/Learning-C
这似乎是成功的:
[root@osboxes c]# git remote show learnc * remote learnc Fetch URL: https://github.com/michaelklachko/Learning-C Push URL: https://github.com/michaelklachko/Learning-C HEAD branch: master Remote branch: master tracked Local ref configured for 'git push': master pushes to master (local out of date)
现在我想从我的Github仓库下载文件到我的电脑。 我做到了这一点:
[root@osboxes c]# git fetch learnc [root@osboxes c]# git merge learnc/master warning: refname 'learnc/master' is ambiguous. Already up-to-date.
但是,我在本地目录中看不到任何新文件。 我怎样才能得到他们?
我也试图做到这一点:
[root@osboxes c]# git pull learnc master From https://github.com/michaelklachko/Learning-C * branch master -> FETCH_HEAD fatal: refusing to merge unrelated histories
顺便说一句,本地我在主分支(没有其他分支):
[root@osboxes c]# git status On branch master nothing to commit, working directory clean
尝试 – --allow-unrelated-histories
像max630评论,或者像这里解释Git拒绝合并无关的历史
git checkout master git merge origin/master --allow-unrelated-histories
然后解决冲突
git add -A . git commit -m "Upload" git push
虽然我都是为了解决人们的工作问题,但是我不认为应该把新的用户作为一般性的解决scheme来教授“push-force”或者“–allow_unrelated_histories”,因为当用户使用它们的时候,不明白为什么事情不起作用。
当你遇到这样的情况时,你开始使用本地存储库,并且希望在GitHub上创build一个远程来分享你的工作,还有一些需要注意的地方。
在创build新的联机存储库时,有一个选项“使用自述文件初始化此存储库”。 如果您阅读了精美版本,则说“如果您正在导入现有存储库,请跳过此步骤”。
你可能已经检查过这个框。 或者类似地,在尝试初始推送之前,您已经在线添加/提交。 如果你在每个地方创build一个独特的提交历史logging,并且在没有Nevermore答复中提到的特殊补贴(因为git不希望你以这种方式进行操作)的情况下不能达成一致。 你可以按照这里提到的一些build议,或者更简单的就是在下次你想把一些本地文件链接到一个全新的远程时不检查这个选项; 保持远程清洁的最初推动。
参考:我的第一次使用git + hub的经验是遇到同样的问题,并进行大量的学习来了解发生了什么以及为什么。
如果一端没有实质的历史logging(也就是说,如果它只是在github的一个单一的自述文件提交),我经常发现手动复制自述文件到我的本地回购,并做一个git push -f
使我的版本新的根提交。
我觉得它稍微不复杂,不需要记住一个晦涩的旗帜,并保持历史更清洁。