我正在学习处理GIT存储库。 我在GitHub上有一个存储库,我在本地克隆了它。我修改了一些文件,然后添加-A,commit -m和git push origin master。到目前为止一切都很好。
现在,我已经使用Git GUI创建了另一个本地存储库,我已经放置了site-web(django 2.0)的文件,并在之后再次添加,提交:
$ git remote add origin https://github.com/Frank-Mascarell/LibrosWeb.git
$ git remote -v
origin https://github.com/Frank-Mascarell/LibrosWeb.git (fetch)
origin https://github.com/Frank-Mascarell/LibrosWeb.git (push)
$ git status
On branch master
nothing to commit, working tree clean
$ git fetch origin
$ git push origin master
To https://github.com/Frank-Mascarell/LibrosWeb.git
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'https://github.com/Frank-
Mascarell/LibrosWeb.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
我也尝试过:
$ git pull origin master
From https://github.com/Frank-Mascarell/LibrosWeb
* branch master -> FETCH_HEAD
fatal: refusing to merge unrelated histories
你为什么要犯这些错误? 似乎这两个存储库连接不良,我无法上传或下载。
答案 0 :(得分:0)
如果我理解正确,您已经从头开始创建了一个新的存储库,并且已经添加了一个远程存储库。
在第一种情况下,您尝试将更改推送到与您的分支不共享相同历史记录的分支。
在第二种方案中,您尝试将更改从远程分支合并到分支中。这会失败,因为这两个分支不共享任何共同的历史记录。
如果您重新开始而不是初始化新存储库,请确保克隆原始存储库并从那里开始。这将允许您推送新的更改,并在现有提交的基础上合并或变基。
答案 1 :(得分:0)
错误消息提供了有关问题的线索。这两个存储库有着无关的历史。
在git中,您不仅仅处理文件和文件更改,尽管这是您从中获得的。 git中的每个提交都包含对每个提交的引用,为您提供完整和完整的历史记录。
发生了什么事情,你有三个存储库,两个是链接的,一个是全新的,但给出了相同的文件。
因此,您的存储库在github上启动,然后在本地克隆,您可以来回推送,不仅可以镜像数据,还可以镜像整个提交历史记录。他们从头到尾都有完整的项目参考。
新存储库只有项目最新状态的快照,没有任何历史记录。
可以修改新的本地存储库,使其进入可以再次推送到现有分支的状态,但这可能比必要的更复杂。
最简单的方法就是从github或第一个本地存储库再次克隆新的存储库。
但是,如果您已经对第二个本地存储库进行了更改,则需要将这些更改复制到一个克隆的存储库中,进行新的提交并从那里进行推送。