我有時會檢查一些以前版本的代碼來檢查或測試。如果我想修改之前的提交,我已經看到了怎麼做的說明 - 但假設我沒有做任何更改。完成後,例如git checkout HEAD^
,我該如何回到分支的頂端?git log
不再顯示我最新提交的SHA。如何在檢出以前的提交後返回到最新的提交?
回答
如果你知道你想回到提交一些部門的負責人,或者被標記,那麼你可以
git checkout branchname
你可以還使用git reflog
來查看過去您的HEAD(或任何其他參考)指出的其他提交內容。
編輯補充:
在Git中的新版本,如果你只跑了git checkout
或別的東西將您HEAD
一次,你也可以做
git checkout -
切換回無論在最後一次結賬之前。這是由類比外殼成語cd -
回去任何工作目錄中的一個動機是以前。
我想提一下,典型的例子是「git checkout master」。我學習使用git時遇到的一個困難是不知道我實際上可以用什麼特定的關鍵字(例如「主」)來代替「branchname」這樣的佔位符詞。 – AbePralle
'master'並不是真正的任何關鍵字,'HEAD'的方式。它只是新存儲庫中的默認分支名稱。您可以運行'git branch'來獲取存儲庫中的分支列表,'git tag -l'獲取標籤列表。同樣,'origin'是存儲庫克隆的遠程的默認名稱,但沒有什麼特別之處。 – Novelocrat
如果不清楚,'git reflog'會給你一個散列列表,在這一點上你可以使用'git checkout [commit-hash]'。 – jbnunn
看看圖形用戶界面... gitk
它顯示所有提交。有時它是更容易的工作圖形... ^^
是的,這實際上是我以前做過的 - 但我目前沒有可用的GUI –
git的結帳主
師傅一角,或最後一次提交。 gitk只會顯示您當時在樹中的位置。 git reflog將顯示所有提交,但在這種情況下,您只需要提示,所以git checkout master。
gitk --all顯示所有提交。 – Kharoof
過這個問題就來了剛纔的事,並添加
要轉到最近承諾:
git checkout $(git log --branches -1 --pretty=format:"%H")
說明:
git log --branches
顯示提交的日誌從所有本地分支
-1
限制爲一次提交→最近提交
--pretty=format:"%H"
格式,只顯示提交哈希殼層的
git checkout $(...)
使用輸出參數用於結帳
注:
這將導致雖然一個分離的頭(因爲我們直接結帳提交)。這可以通過使用sed
提取分支名稱來避免,如下所述。
要到最近的分公司提交:
git checkout $(git log --branches -1 --pretty=format:'%D' |sed 's/HEAD -> \|tag: [^,]*\|,.*//g')
說明:
git log --branches
顯示提交的日誌從所有地方分公司
-1
限制一個提交→最近的提交
--pretty=format:"%D"
格式,只顯示裁判的名字
|sed 's/HEAD -> \|tag: [^,]*\|,.*//g'
忽略HEAD,標籤和提取第一多個分支名稱
殼層的 git checkout $(...)
使用輸出參數用於結帳
注:
這將始終只如果該提交有多個,則使用第一個分支名稱。
無論如何,我認爲最好的解決辦法只是爲最近顯示裁判的名字提交知道在哪裏簽到:
git log --branches -1 --pretty=format:'%D'
例如爲該命令創建別名git top
。
您可以使用此以下的Git命令之一:
git checkout master
git checkout branchname
- 1. 如何在返回到早期提交後返回到unpushed提交
- 2. 在提交新的更改之前更正以前的提交
- 3. 恢復到舊提交後,我無法返回到最近的提交
- 4. 在提交之前將提交提交到新分支
- 5. Git - 回到以前的提交,現在想寫在前面的提交
- 6. SourceTree - 不知道如何返回到以前的提交
- 7. 如何返回到最新的遠程提交git
- 8. git:在檢出舊的提交後,我如何看到下一個提交?
- 9. 返回ActionResult提交後提交模式彈出
- 10. 提交前如何檢查?
- 11. 檢查提交是否在提交前第一次提交
- 12. 我已經提交更改之後,如何返回到以前的位置
- 13. 如何在保留「最新」提交的同時壓縮大量「先前」提交?
- 14. 獲取最後一次提交之前的提交
- 15. 如何在向Gerrit提交上次提交後提交額外的提交?
- 16. 如何使用gitpython做最後一次提交的當前提交的git diff?
- 17. 如何在我的提交之前插入已提交的提交,並還原那些已提交的提交?
- 18. Git:如何編輯之前不是最新提交的提交的消息?
- 19. Tortoisegit撤消最後提交到回購
- 20. 如何在Riak中實現提交前和提交後鉤子?
- 21. Eclipse Egit新的提交覆蓋了最後一次提交
- 22. 如何找出當前提交的作者及其父提交?
- 23. 回到之前在SourceTree中的提交
- 24. 應用從以前的一個git補丁提交到以後提交
- 25. 如何用Mysql提交最後一個id的表單提交
- 26. 在提交舊提交後獲取最新代碼?
- 27. 提交svn unstages最後一次提交?
- 28. 如何編輯以前的提交,並在不刪除git之前的提交?
- 29. Git - 將未提交的更改推送到以前的提交
- 30. 如何在添加多次提交後取消提交提交?
關於'混帳log'句子你可以運行'git log --all'(或者更有用的'git log --oneline --graph --all')。 – Wildcard