步驟1:我已經創建了一個本地Git倉庫無法當前分支復位到先前的後推提交
步驟2:然後我做一個拉(當前分支是主)
步驟3:在此之後我通過在本地副本上使用重置來恢復合併,如下所示。
第4步:在此之後它正確地顯示,如下所示。
問:我試圖推更改遠程主。它給出了以下錯誤。你能告訴我爲什麼嗎?我正在使用TortoiseGit。謝謝。
步驟1:我已經創建了一個本地Git倉庫無法當前分支復位到先前的後推提交
步驟2:然後我做一個拉(當前分支是主)
步驟3:在此之後我通過在本地副本上使用重置來恢復合併,如下所示。
第4步:在此之後它正確地顯示,如下所示。
問:我試圖推更改遠程主。它給出了以下錯誤。你能告訴我爲什麼嗎?我正在使用TortoiseGit。謝謝。
我已經找到了solution.Here步驟如下。
步驟1:克隆遠程倉庫
git clone https://github.com/myrepo/myrepo.git
步驟2(將在默認分支主 自動檢出):重置本地主 - 它會改變主點到具有特定SHA的不同提交。
git reset --hard 2f89f2971c3cr45fe187241b8cb89a8ef8234ea3
步驟3:推回至遠程存儲庫。
git push https://github.com/myrepo/myrepo.git --force
這篇文章對我幫助很大:Undoing Merges
這是it.All是done.Cheers :)
您可以檢出從之前的提交更改爲您想要恢復的每個文件,然後進行新的提交。
我不熟悉toroisegit,但我相信它有一個命令行輸入某個地方,這樣的步驟是這樣的:
比方說,承諾要恢復到的哈希29edf27
你改變,你要恢復兩個文件,說file1.php
和file2.txt
git checkout 29edf27 -- file1.php
git checkout 29edf27 -- file2.txt
git commit -m "reverted commit to 29edf27"
git push origin master
這並不明確me.I本地沒有正確地恢復了更改?那麼爲什麼我需要再次這樣做呢?謝謝。 – Sampath
通過在本地還原您的更改,您只需簽出以前的提交。所以從遙遠的角度來看,你是一個過時的客戶端,因爲你的分支的尖端比它的尖端更老。上述過程將創建一個新的提交,其中包括在遠程的HEAD提交作爲以前的提交,因此遠程將識別您的本地回購具有它所做的一切以及新的提交。 –
澄清,我認爲在這種情況下,術語「回覆」可能是非直觀的。你並沒有真正恢復任何東西,就像在概念上放棄更改一樣,但實際上你只是檢出版本庫的舊版本。你可以通過檢查最新的提交散列,通過這個過程「取消還原」 –
[可能重複(HTTP://計算器。com/questions/1338728/delete-commit-from-a-branch-in-git#1338744)'git push origin HEAD --force' –
您試圖推送前嘗試拉? – ItayB
@ItayB我已經找到了解決辦法,我會稍後再說。歡迎:) – Sampath