簡體   English   中英

我無法推送,因為本地存儲庫已過期,但是我無法拉出數據

[英]I can't push because local repository out of date, but I can't pull the data

所以我嘗試使用bitbucket進行遠程重新存儲,在他們的網站上建立存儲庫后,我試圖推送我的本地存儲庫

但是我無法推送數據,因為在我的Xcode中說本地存儲庫已過時 在此處輸入圖片說明

當我嘗試從bitbucket中提取數據時,似乎所有按鈕和選項都被禁用 在此處輸入圖片說明

厚框和按鈕禁用。

這是終端的狀態 在此處輸入圖片說明

我也試圖從碼頭拉 在此處輸入圖片說明

我被卡住了,該怎么辦?

您從Terminal進行的git push失敗:

! [rejected]        master -> master (non-fast-forward)

並且您從終端的git pull失敗並顯示:

fatal: refusing to merge unrelated histories

告訴我們我們需要知道的。 (此外:對於我來說,將它們閱讀為復制粘貼的文本而不是圖像閱讀起來要容易得多。)具體來說, 您已經創建了一個本地存儲庫,該存儲庫與遠程存儲庫完全無關。

當您通過運行git init在本地啟動新的 Git存儲庫,然后將一些文件添加並提交到新存儲庫中時,就會發生這種情況。 此新存儲庫與現有存儲庫沒有關系。 1

然后,您在本地存儲庫中運行git remote add origin url ,告訴Git您的本地存儲庫與url上的Git存儲庫直接相關。 您的Git相信您。 (這不是達到這一點的唯一方法,但是即使您通過Xcode做到這一點,也可能是您達到這一點的方法。)

一旦您准備好將這兩個不相關的Git互相交談,您就可以讓您的Git呼叫其所謂的兄弟(堂兄?母親?可能是什么)Git並與之交談。 隨着git push ,你的Git表明,他們把你上添加新的提交他們的,但你添加到他們的,所以他們說: 不,這不是一個快進:您提交不正確有關礦。 使用git pull ,您的Git會獲取他們的提交,然后讓您的Git運行git merge來將您的提交與其他Git的親屬進行合並。 您的Git說: 哇,等等,這些提交沒有關系! 我不能嫁給這兩個!

有多種解決方法。 使用哪一個取決於原始錯誤是什么。 如果您有最初使用git clone來克隆到位桶庫,讓你的資料庫有關 還是應該不會創建到位桶儲存庫你的方式,使得初始到位桶倉庫是空的 ,並願意從你的倉庫裝滿,從而成為相關?

找出其中的情況。 然后,在掌握了原始錯誤在哪里的知識之后,回到StackOverflow並搜索如何解決原始錯誤,同時保留到目前為止所做的任何工作。


1注意,一個完全空白的庫,一個沒有提交,也與任何其它庫沒有任何關系,而是因為它是一張白紙,這是完全滿意, 在這一點上任何其他Git倉庫結婚了。 例如,這就是git clone工作方式:克隆某些現有存儲庫時,首先要創建一個新的完全空的存儲庫。 然后,將它與其他存儲庫(通常稱為origin )結合使用,通常使用git fetchgit checkout master ,現在這兩個存儲庫共享其所有master提交。

暫無
暫無

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

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