当前位置: 首页 > 知识库问答 >
问题:

试图从我的Github存储库中提取文件:“拒绝合并不相关的历史记录”

广亮
2023-03-14

我正在学习git,并且正在关注git社区书籍。

以前(很久以前),我在Github上创建了一个公共存储库,其中包含一些文件。现在,我在当前计算机上设置了一个本地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 repo下载到我的计算机上。我做到了:

[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 branch(没有其他分支):

[root@osboxes c]# git status
On branch master
nothing to commit, working directory clean

共有3个答案

逄边浩
2023-03-14

虽然我完全支持解决人们的工作问题,但我不认为应该将“推送-强制”或“-allow_unrelated_histories”作为通用解决方案教给新用户,因为当一个人在不理解为什么的情况下使用它们时,它们会对存储库造成真正的破坏。事情一开始就不起作用。

当您遇到这样的情况,从本地存储库开始,并希望在GitHub上创建一个远程存储库来共享您的工作时,需要注意一些事情。

创建新的在线存储库时,有一个选项“使用自述文件初始化此存储库”。如果您阅读了详细说明,它会说“如果您要导入现有存储库,请跳过此步骤。”

您可能已选中该框。或者类似地,在尝试初始推送之前,您在线进行了添加/提交。所发生的事情是,您在每个地方创建了一个唯一的提交历史,如果没有Nevermore的回答中提到的特殊津贴,它们将无法协调(因为git不希望您以这种方式操作)。你可以遵循这里提到的一些建议,或者更简单地说,下次你想把一些本地文件链接到一个全新的遥控器时,不要选中这个选项;在初次推送时保持遥控器清洁。

参考:我对git hub的第一次体验是遇到了同样的问题,并做了很多学习来理解发生了什么以及为什么。

夹谷茂
2023-03-14
git checkout master
git merge origin/master --allow-unrelated-histories

解决冲突,然后

git add -A .
git commit -m "Upload"
git push
璩涵衍
2023-03-14

尝试<代码>--允许不相关的历史记录

就像max630评论的那样,或者正如这里解释的那样,Git拒绝合并不相关的历史

 类似资料:
  • 我如何继续这个重基,允许与新版本中引入的强制标志无关的历史?

  • 我有一个discord机器人,通过连接github repo在heroku中托管,因此我有一个命令,该命令使用作者ID更新sql数据库,当我在PC中进行测试时,它正在更新,但在github中添加文件和新代码后,sql文件没有得到更新这些是代码

  • 如何在GitHub上配置存储库,以便在不克隆整个存储库的情况下安装程序(任何版本,将有两个存储库)。克隆将通过Linux完成。该程序打包在中。焦油gz格式。

  • 问题内容: 我正在尝试运行一个容器,该容器将公开私有GitHub存储库上的软件包中的golang服务。 由于我与GCE合作,因此我的入门图片是google / debian:wheezy。 安装所有必需的依赖项和工具后,我正在运行 包裹是私人仓库。 我添加了GitHub SSH密钥以允许从私有存储库克隆到docker文件: 尽管如此,当go尝试克隆存储库时,我在go get流程中遇到了一个错误:

  • 在rebase指定i选项,您可以改写、替换、删除或合并提交。 主要使用的场合: 在push之前,重新输入正确的提交注解 清楚地汇合内容含义相同的提交。 添加最近提交时漏掉的档案

  • 有人为我创建了一个空的GitHub,并添加了一个自述。md文件。与此同时,我开始着手我的项目。 现在我想开始推动这个存储库,所以我做了,然后是。 但是当我做以与repo同步并开始推送它时,我会收到这条错误消息: 为什么以及如何解决这个问题?