我有一個 github 存盤庫,它意外地強制推送到一個分支上。
這個分支的 PR 顯示了新的和舊的提交,我什至可以瀏覽這個提交的檔案——所以一切都還在那里。
我可以以某種方式向此提交添加一個分支名稱,以便它可以正常檢出(并在最后更正混亂的初始分支)嗎?
uj5u.com熱心網友回復:
如果你有所述提交的完整 sha,你可以運行:
git fetch origin <sha>
git switch -c newbranch <sha>
正如@kadewu 評論的那樣:shaingit fetch origin sha需要是完整的 sha(40 個字符),否則 git 會嘗試將其解釋為參考名稱。
同樣值得注意的是:如果您(或其他任何人)在某個時候具有正確的遠程分支狀態(例如:在任何分支之后git fetch,或git pull在任何分支上),您可以通過查看以下內容找到正確的提交:
git reflog origin/thatbranch
uj5u.com熱心網友回復:
使用 GitHub 的 API 創建一個分支,然后您可以獲取并簽出該分支。
curl -i -H "Accept: application/json" -H "Content-Type: application/json" -X POST -d '{"ref":"refs/heads/<new-branch-name>", "sha":"<sha>"}' https://api.github.com/repos/<namespace>/<repo>/git/refs
https://objectpartners.com/2014/02/11/recovering-a-commit-from-githubs-reflog/
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/536300.html
標籤:混帐知乎
