2012-04-23 71 views
1

我已經從github克隆了一些項目,到我的項目,所有的作品都很好,我很高興。Git回滾到之前的結賬

但在一些git pulls後,我收到了一些與上游項目的新提交有關的項目衝突。

我想回滾到之前的結帳,但我不知道我的項目中以前有哪個穩定結帳。

我如何知道它並回滾到以前的穩定(對我來說)項目結賬?我明白,從視角來看,更正確的方法可以解決與上游回購問題的衝突,但有時我只需要回滾到以前的版本,以獲得解決問題的時間。

+0

如果您知道如何結帳以前的版本,我不清楚這一點嗎?如果沒有看到http://stackoverflow.com/q/1223354/11343。 – CharlesB 2012-04-23 07:08:28

回答

2

如果您有一個可以執行的命令/腳本,並且可以說明一個「穩定點」(即正在工作,與當前不工作的狀態相反),那麼您可以考慮命令/命令。
請參閱「How to use git bisect?」。

這將幫助你隔離「它正在工作」的最後一次提交。

+0

+1,但對於Git的新手用戶可能有點高級? – CharlesB 2012-04-23 07:09:20

+0

由於最近有一個已知點,所以看起來似乎有點過分。 – Ashe 2012-04-23 07:09:58

+0

@CharlesB當然,因此鏈接解釋如何使用它。無論如何,如果提交是相當新的,其他答案似乎更合適。 – VonC 2012-04-23 07:12:13

0

你已經承諾合併?如果不是,只需git reset --hard,並且您在發佈git pull之前又回到了州。否則,git reset --hard HEAD^(如果合併是最後一次提交)會訣竅,因爲默認情況下git會始終選擇合併提交的第一個父級,這是您的分支。如果有疑問,您可以隨時使用gitk檢查情況並找到您的分支上的最後一個提交,複製它的SHA1哈希並恢復到那個。

1

git reflog應該告訴你操作的順序,最近的第一個。查找在第一次拉/合之前操作的提交ID; checkoutreset --hard