簡體   English   中英

GIT:如何將第二個本地存儲庫與現有的GitHub存儲庫連接?

[英]GIT: how to connect a second local repository with an existing GitHub repository?

我正在學習處理GIT存儲庫。 我在GitHub上有一個存儲庫,並且已在本地克隆它。 我已經修改了一些文件,然后添加-A,commit -m和git push origin master。 到現在為止還挺好。

現在,我使用Git GUI創建了另一個本地存儲庫,放置了站點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

為什么要給出這些錯誤? 看來這兩個存儲庫沒有很好地連接,並且我無法上傳或下載。

如果我理解正確,那么您從頭開始創建了一個新的存儲庫,並為此添加了一個遠程存儲庫。

在第一種情況下,您嘗試將更改推送到與分支沒有相同歷史記錄的分支。

在第二種情況下,您嘗試將更改從遠程分支合並到分支中。 之所以失敗,是因為兩個分支沒有共享任何共同的歷史記錄。

如果您是重新開始而不是初始化新的存儲庫,請確保克隆原始存儲庫並從那里開始。 這將使您既可以推送新更改,又可以在現有提交的基礎上進行合並或重新設置基礎。

該錯誤消息提供了有關該問題的線索。 這兩個存儲庫具有不相關的歷史記錄。

在git中,您將不僅僅處理文件和文件更改,盡管這是您要擺脫的。 git中的每個提交都包含對導致該提交的每個提交的引用,從而為您提供了有關事情如何發展的完整完整的歷史記錄。

發生的情況是您有三個存儲庫,兩個存儲庫已鏈接,並且一個存儲庫是全新創建的,但具有相同的文件。

因此,您的存儲庫始於github,然后在本地克隆,您可以前后推拉,不僅鏡像數據,還鏡像整個提交歷史記錄。 他們從頭到尾都對您的項目有完整的參考。

新的存儲庫僅具有項目最新狀態的快照,沒有任何歷史記錄。

可以修改新的本地存儲庫,使其進入可以再次推送到現有分支的狀態,但這可能比必要的更為復雜。

最簡單的方法是從github或第一個本地存儲庫中再次克隆新存儲庫。

但是,如果您已經對第二個本地存儲庫進行了更改,則需要將這些更改復制到一個克隆存儲庫中,進行新的提交並從那里推送。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM