[英]A few git usage questions
說我創建一個分支,然后合並到master,然后意識到事情出了問題。 我如何在合並之前恢復到原來的狀態?
說我創建了一個分支,對其進行處理,然后去合並並分配沖突。 假設我不想處理它,現在就將新分支設為主分支,我該怎么做?
順便說一句,您在網上看到的關於現實生活中GIT使用模式的最佳教程是什么?
如果您合並並且不希望該提交,則正確的命令是
git reset --hard HEAD@{1}
這意味着將分支重置為之前的位置(閱讀{}語法-您可以通過閱讀有關git reflog的信息來獲取大多數信息)。 HEAD^1
也可以使用,但是您必須知道您正在指定當前提交的第一個父對象。
如果您已經推送了此提交,請謹慎通知所有人。 如果您沒有能力傳達共享存儲庫中分支的將來強制更新,則不要這樣做。
進行此操作的正確方法是再次合並,但這一次從新分支開始進行合並,並指定只希望自己支持。 “他們的”策略已被棄用。
git merge -s ours master
然后將master更新到另一個分支所在的位置:
git checkout master git merge --ff-only otherbranch
或者,相反,由於您知道這將是一次快速合並(以上只是安全檢查),因此您可以僅將主服務器更新為當前提交,而無需將其檢出:
git update-ref refs/heads/master HEAD
您可以繼續在分支機構上工作。 如果要使用master,請使用前面的命令。
以下是一些我認為有用的鏈接:
gitready.com Comitinity Git書 Pro Git書 我的文章
其他來源:
您也可以使用相同的ID在Twitter上找到我。
git reset --hard
以及最后一次提交的名稱。 或者,使用reflog: HEAD@{1}
將帶您回到以前的位置。 如果已推送,請使用git-revert
來創建包含您的更正的新提交。 git reset --hard mybranch
出主服務器,然后使用git reset --hard mybranch
。 這使得master指向與mybranch相同的提交,從本質上講,由於分支分支而丟棄了master上的所有工作。 同樣,如果有關master的工作被公開,則丟掉它是一個壞主意。 說我創建一個分支,然后合並到master,然后意識到事情出了問題。 我如何在合並之前恢復到原來的狀態?
如果您還沒有進入主線或者已經推入,並且絕對知道沒有人從主線撤出,那么請執行以下操作:
git reset --hard HEAD〜N(N是您想返回的提交數。)
如果您已經推了推,或者不能確定是否沒有其他人沒有推,那么請承擔自己的錯誤,然后執行以下操作:
git還原
說我創建了一個分支,對其進行處理,然后去合並並分配沖突。 假設我不想處理它,現在就將新分支設為主分支,我該怎么做?
git checkout <desired branch> git branch -d master git branch -m <desired branch> master
順便說一句,您在網上看到的關於現實生活中GIT使用模式的最佳教程是什么?
git reset --hard
就足夠了,要進行基礎調整,您將必須執行git rebase --abort
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.