我有兩個分支A和B.我想合併A和B.我錯誤地運行了git fetch
命令。我想撤消它。有沒有這樣的命令?在合併分支時撤銷提取命令
0
A
回答
0
「撤消」一個git獲取是困難的,但永遠不會有任何理由需要撤銷git獲取。請記住,git fetch的作用是調用遠程服務器,獲取SHA-1映射的分支名稱列表,引入您需要的提交和其他對象以將其存儲在存儲庫中,然後更新您的遠程跟蹤分支,以便它們指向遠程目前的分支提示(截至您剛剛打電話給它時)。這對你的任何工作樹文件都沒有影響,如果你明天再次運行git fetch,今天完成的任何工作都可以在明天跳過。如果你設法撤銷抓取,明天運行的那個將不得不重新開始今天完成的工作,所以這是一個淨損失:你只是花了一些努力,讓你的git將不得不通過網絡帶來更多的代碼。
這就是說,腳註的時間。 :-)
1如果您有遠程reflog(您可能會這樣做),這並不難:只需使用遠程reflog即可查找最近一次獲取中更新的遠程跟蹤分支 - 這些信息可能仍然可用FETCH_HEAD文件 - 然後使用git update-ref將這些引用指向它們以前的reflog條目。但是這仍然會將提取的對象留在您的存儲庫中,因此爲了清除它們,您還必須刪除中間reflog條目,然後運行git gc --prune = now,這需要非常小心,並且會放棄所有未引用的對象,而不僅僅是最近獲取的引用。
2我認爲有人可能會認爲「磁盤空間不足」可能是導致這種情況的一個原因,特別是如果大型對象意外地被推送到遠程並且將在下一次獲取時從遠程移除。儘管如此,在一個空間不足的文件系統中工作是非常棘手的,而且我不確定除了將整個存儲庫移到其他地方(沒有磁盤空間問題的地方)之外,我都不想做這麼多事情。
相關問題
- 1. 在原始分支提交,分支和撤銷是否安全?
- 2. 撤銷上次提交/合併
- 3. 撤銷mysql更新命令
- 4. 撤銷快進合併
- 5. Git命令查看特定功能分支何時合併到整合分支
- 6. 撤消一個分支合併
- 7. Git撤消合併3個分支
- 8. 如何撤消主分支的合併?
- 9. 如何從歷史檔案副本中的主分支中撤銷合併或重新分支的分支
- 10. 實現可撤銷命令 - Java
- 11. 撤銷命令工作如此之晚
- 12. InkCanvas的撤銷/重做命令堆棧
- 13. git分支撤消提交
- 14. 撤銷一個提交,然後重新合併,在git?
- 15. Mercurial撤銷推送到主分支
- 16. 如何撤銷已提交的子模塊命令
- 17. Git合併分支提交
- 18. 撤銷convertToCapped集合
- 19. 撤銷在TortoiseSVN的提交
- 20. 在Subversion中撤銷反向合併或雙反向合併
- 21. 撤銷SVN中不希望的合併
- 22. 撤銷Gitlab中的新合併請求
- 23. 撤銷更改(提交併推送)
- 24. 如何在linux下使用clearcase命令行合併子分支到主分支?
- 25. 取消合併分支,保留合併後提交
- 26. 合併git分支時,如何避免提交日誌分支?
- 27. 合併和刪除分支在一個步驟/命令
- 28. 如何在Git中提取並移除合併的分支?
- 29. Git的撤銷合併是刪除未提交的修改
- 30. 在svn提交/更新/合併命令
沒有必要撤消任何'git的fetch',因爲這從不影響任何*你*的工作,它不僅帶來從*別人犯*。 – torek
爲什麼你認爲你需要撤消抓取?你想解決哪個問題? –
你的兩個分支之一是'A'還是'B'是遠程分支? – LeGEC