2011-06-22 27 views
0

在改變了原始遠程URL(它被移動)並做了​​之後,我發現自己有一個回購,每次提交&分支加倍(直到我以前的最後一次提取的時間點)。但是,gitk顯示了一個共同的初始祖先(回購的'開始')。如何在git獲取後恢復回購?

文件FETCH_HEAD包含24個條目。有沒有任何git命令恢復我的回購,因爲它是在取回之前?

小細節信息:我的本地回購僅從一個遠程供應,並且自己的分支被推送到另一個遠程。

+1

git沒有命令更新... –

回答

1

這聽起來像回購時被移動所有的歷史丟失或修改(不同的sha-1哈希意味着git不知道共同的祖先),因爲我認爲你的意思是git拉不是一個git更新。

如果你對任何文件沒有任何損失,或者你還沒有做任何改變(最好先在分支中做這件事,看看它是否做了你想做的事),你可以嘗試以下內容:

git checkout -b tmaster 
git reset --hard origin/master 

現在檢查,看看是否一切正常,如果是的話,刪除master分支和重命名tmastermaster

儘管您已經創建了任何分支,但仍會保留舊的歷史記錄,您將不得不創建新的分支機構,並且一個接一個地提交您在原始主機上進行的更改。


首先,我還要跑

git remote update --prune 
git fetch --all 
+0

我運行了遠程更新--prune,它刪除了幾個分支,但主要問題仍然存在。順便說一句:我全部都是在本地回購的本地副本上完成的,消除了風險。也許我應該開始一個新的自己的遠程回購克隆,並從主線回購添加更新。這種方法的缺點:不知道出了什麼問題,關於「如何」在獲取後恢復(它確實是獲取,因爲我想在合併之前使用gitk檢查獲取結果)。 – Rob

+0

你能夠在某處發佈git日誌的輸出嗎?如果你所做的只是取回,你應該能夠簡單地刪除那些分支來恢復到以前的狀態。 –

+0

我已經嘗試刪除分支,但我必須進行更徹底的實驗 - 如果忽略了(在FETCH_HEAD中列出的分支),這可能會保持很多不變......順便說一句:SHA的確是不同的。 (注意:下班時間不在辦公室......) – Rob

0

(優先項目,由於很長一段時間) - 新的信息:它被告知,新的回購URL的歷史已經改寫intentioally。我會用更合適的標題開啓一個新話題。