尝试从我的 Github 存储库中提取文件:"refusing to merge unrelated histories"
Trying to pull files from my Github repository: "refusing to merge unrelated histories"
我正在学习 git,并且正在阅读 Git 社区书籍。
以前(很久以前)我在 Github 上创建了一个 public 存储库,其中包含一些文件。现在我在我当前的计算机上设置了一个本地 Git 存储库,并提交了一些文件。然后我添加了一个指向我的 Git 中心页面的远程:
[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
顺便说一句,本地我在 master 分支上(没有其他分支):
[root@osboxes c]# git status
On branch master
nothing to commit, working directory clean
尝试--allow-unrelated-histories
像 max630 评论的那样,或如此处所述Git refusing to merge unrelated histories
git checkout master
git merge origin/master --allow-unrelated-histories
解决冲突,然后
git add -A .
git commit -m "Upload"
git push
如果一端没有大量的历史记录(也就是说,如果它只是 github 端的一个自述文件提交),我经常发现手动将自述文件复制到我的本地仓库并执行a git push -f
使我的版本成为新的根提交。
我发现它稍微不那么复杂,不需要记住一个晦涩的标志,并且让历史更清晰一些。
虽然我完全支持解决人们的工作问题,但我认为 "push --force" 或“--allow_unrelated_histories”不应该作为通用解决方案教给新用户,因为它们会对一个存储库,当人们使用它们时不了解为什么事情首先不起作用。
当您遇到这种情况,即您从本地存储库开始,并希望在 GitHub 上创建一个远程服务器来共享您的工作时,需要注意一些事项。
当您创建新的在线存储库时,有一个选项 "Initialize this repository with a README"。如果您阅读细则,上面写着 "Skip this step if you’re importing an existing repository."
您可能已经选中了那个框。或者类似地,您在尝试初始推送之前在线创建了 add/commit。发生的事情是你在每个地方创建了一个独特的提交历史,如果没有 Nevermore 的回答中提到的特殊津贴,它们就无法协调(因为 git 不希望你那样操作)。你可以遵循这里提到的一些建议,或者更简单地说,下次你想 link 一些本地文件到全新的远程时不要选中该选项;为初始推送保持遥控器清洁。
参考:我对 git + hub 的第一次体验是 运行 遇到同样的问题,并进行大量学习以了解发生了什么以及为什么。
在你的分支上 - 说 master,pull 并允许不相关的历史记录
git pull origin master --allow-unrelated-histories
对我有用。
当我使用--allow-unrelated-histories
时,这个命令产生了太多的冲突。文件中存在冲突,我什至没有处理过。为了克服错误 " Refusing to merge unrelated histories"
,我使用了以下 rebase 命令:
git pull --rebase=preserve --allow-unrelated-histories
在此之后提交未提交的更改并显示提交消息。最后,运行以下命令:
git rebase --continue
在此之后,我的工作副本与远程副本保持同步,并且我能够像以前一样推送我的更改。拉动时不再出现不相关的历史错误。
执行以下命令:
git pull origin master --allow-unrelated-histories
合并 vim 将打开。添加一些合并消息和:
- 按 ESC
- 按 Shift + ';'
- 按'w',然后按'q'。
你很高兴。
在我的案例中,我遇到了同样的问题,尤其是在远程添加 Git 存储库后尝试的第一个拉取请求。
面临以下错误。
fatal: refusing to merge unrelated histories on every try
使用 --allow-unrelated-histories 命令。它完美运行。
git pull origin branchname --allow-unrelated-histories
我正在学习 git,并且正在阅读 Git 社区书籍。
以前(很久以前)我在 Github 上创建了一个 public 存储库,其中包含一些文件。现在我在我当前的计算机上设置了一个本地 Git 存储库,并提交了一些文件。然后我添加了一个指向我的 Git 中心页面的远程:
[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
顺便说一句,本地我在 master 分支上(没有其他分支):
[root@osboxes c]# git status
On branch master
nothing to commit, working directory clean
尝试--allow-unrelated-histories
像 max630 评论的那样,或如此处所述Git refusing to merge unrelated histories
git checkout master
git merge origin/master --allow-unrelated-histories
解决冲突,然后
git add -A .
git commit -m "Upload"
git push
如果一端没有大量的历史记录(也就是说,如果它只是 github 端的一个自述文件提交),我经常发现手动将自述文件复制到我的本地仓库并执行a git push -f
使我的版本成为新的根提交。
我发现它稍微不那么复杂,不需要记住一个晦涩的标志,并且让历史更清晰一些。
虽然我完全支持解决人们的工作问题,但我认为 "push --force" 或“--allow_unrelated_histories”不应该作为通用解决方案教给新用户,因为它们会对一个存储库,当人们使用它们时不了解为什么事情首先不起作用。
当您遇到这种情况,即您从本地存储库开始,并希望在 GitHub 上创建一个远程服务器来共享您的工作时,需要注意一些事项。
当您创建新的在线存储库时,有一个选项 "Initialize this repository with a README"。如果您阅读细则,上面写着 "Skip this step if you’re importing an existing repository."
您可能已经选中了那个框。或者类似地,您在尝试初始推送之前在线创建了 add/commit。发生的事情是你在每个地方创建了一个独特的提交历史,如果没有 Nevermore 的回答中提到的特殊津贴,它们就无法协调(因为 git 不希望你那样操作)。你可以遵循这里提到的一些建议,或者更简单地说,下次你想 link 一些本地文件到全新的远程时不要选中该选项;为初始推送保持遥控器清洁。
参考:我对 git + hub 的第一次体验是 运行 遇到同样的问题,并进行大量学习以了解发生了什么以及为什么。
在你的分支上 - 说 master,pull 并允许不相关的历史记录
git pull origin master --allow-unrelated-histories
对我有用。
当我使用--allow-unrelated-histories
时,这个命令产生了太多的冲突。文件中存在冲突,我什至没有处理过。为了克服错误 " Refusing to merge unrelated histories"
,我使用了以下 rebase 命令:
git pull --rebase=preserve --allow-unrelated-histories
在此之后提交未提交的更改并显示提交消息。最后,运行以下命令:
git rebase --continue
在此之后,我的工作副本与远程副本保持同步,并且我能够像以前一样推送我的更改。拉动时不再出现不相关的历史错误。
执行以下命令:
git pull origin master --allow-unrelated-histories
合并 vim 将打开。添加一些合并消息和:
- 按 ESC
- 按 Shift + ';'
- 按'w',然后按'q'。
你很高兴。
在我的案例中,我遇到了同样的问题,尤其是在远程添加 Git 存储库后尝试的第一个拉取请求。 面临以下错误。
fatal: refusing to merge unrelated histories on every try
使用 --allow-unrelated-histories 命令。它完美运行。
git pull origin branchname --allow-unrelated-histories