縱觀歷史,似乎你COMMITED犯下,櫻桃採摘它的另一個分支,然後試圖重新恢復它的兩個分支。
要清理一下我首先建議你確保所有的提交(特別是包括在頂部的未提交更改),不包含你不想失去任何信息。
之後,您可以使用以下命令來丟掉其他所有東西,然後回到那一個提交。請注意,這確實會削減樹,因此請確保您沒有任何要保留的數據。
git reset --hard 8791cc9176
這會將您當前的分支重置爲該提交,忽略其他所有內容。所以你可能想在那裏重置你的本地主人。之後,您可以刪除使用git branch -D Safe
您Safe
分支(注意是大寫D
能夠刪除未合併到其他分支的分支,除此之外的情況下,使用較低的情況下d
以確保不會丟失信息)。
由於您的遙控器也更高級的狀態,你可能想擺脫那些額外的提交也有。請注意,默認情況下,您不能只推送較舊的歷史記錄並將其替換爲遠程記錄。相反,您必須使用git push --force origin master
(或簡稱-f
)強制推送它。儘管可以將它用於個人項目,但您應該知道,在與他人合作或存儲庫公開時,絕不應該這樣做。這會將遠程的歷史記錄更改爲其他用戶訪問遠程設備時無法自動處理的狀態。所以他們可能會遇到衝突。這就是爲什麼你應該(a)總是確保你所推送的內容真的很好推送,並且(b)通過增加提交(例如,恢復提交,就像你已經在這裏使用的那樣),總是在遠程撤銷一些東西。
[恢復到以前的Git提交]的可能重複(http://stackoverflow.com/questions/4114095/revert-to-a-previous-git-commit) – rightfold 2014-10-19 10:38:20