說我創建了一個分支,然後合併成主,然後意識到事情出錯了。我如何恢復到我合併之前?幾個git使用問題
說我創建一個分支,在它上面工作,然後去合併並獲得衝突的分配。假設我不想處理這個問題,現在讓新分支成爲主人,我該怎麼做?
順便說一句,你在網上看到過的最好的教程是什麼,現實生活中的GIT使用模式?
說我創建了一個分支,然後合併成主,然後意識到事情出錯了。我如何恢復到我合併之前?幾個git使用問題
說我創建一個分支,在它上面工作,然後去合併並獲得衝突的分配。假設我不想處理這個問題,現在讓新分支成爲主人,我該怎麼做?
順便說一句,你在網上看到過的最好的教程是什麼,現實生活中的GIT使用模式?
git reset --hard
和最後一個良好提交的名稱。或者,使用reflog:[email protected]{1}
將帶您回到以前的位置。如果它被推送,請使用git-revert
創建一個新的提交更正。git reset --hard mybranch
。這使得高手指向與mybranch相同的提交,實質上是拋棄了分支之後所有對master的工作。再次,如果主人的工作被公諸於衆,把它扔掉是個壞主意。git reset --hard
就足夠了,對於墊底,你將不得不做git rebase --abort
說我創建一個分支,然後合併成高手,那麼實現的事情出錯。我如何恢復到我合併之前?
如果你還沒有推到主線或有推,知道absoutely確保沒有其他人已經從主線拉然後做:
的git的復位 - 硬HEAD〜N(N爲你想提交的數量回去)
如果你推或無法確定沒有人還沒有拉昇然後坦白到自己的錯誤,並做:
混帳恢復
說我創建了一個分支,在它上面工作,然後去合併並獲得衝突的分配。假設我不想處理這個問題,現在讓新分支成爲主人,我該怎麼做?
git checkout <desired branch>
git branch -d master
git branch -m <desired branch> master
順便說一句,什麼是你現實生活GIT使用模式在網上看到的最好的教程?
如果合併,不希望犯,正確的命令是
git reset --hard [email protected]{1}
這意味着重置分支到其原來的位置(讀使用{}語法 - 你可以通過閱讀關於git reflog獲得大部分信息)。 HEAD^1
也可以工作,但您必須知道您指定了當前提交的第一個父項。
如果您已經推送了此提交,請謹慎通知所有人。如果您無法在未來強制更新共享存儲庫中的分支,請不要這樣做。
執行此操作的正確方法是再次合併,但這次是從新分支執行並指定您只需要您的一方。 「他們的」策略已被棄用。
git merge -s ours master
然後更新主到另一個分支是:
git checkout master
git merge --ff-only otherbranch
或者,相反,因爲你知道這將是一個快進合併(以上只是一個安全檢查) ,您可以將主服務器更新爲當前提交而不檢出:
git update-ref refs/heads/master HEAD
並且您可以繼續在您的分支上工作。如果你打算在master上工作,那麼使用前面的命令。
這裏有一些鏈接,我發現有用:
gitready.com Commuinity Git Book Pro Git Book my article
其它來源:
IRC channel on freenode Twitter Search waterfall
你也可以找我在同一個ID下的twitter上。
-1永不改變公共分支上的歷史記錄 – 2010-12-02 16:32:42
沒有指定它是否被推送。 – 2010-12-02 16:33:14