簡體   English   中英

檢索遠程存儲庫所有分支的所有提交的 Git 補丁

[英]Retrieving Git patch for all commits of all branches of a remote repository

我對 Git 如何處理遠程存儲庫的初始git clone有點困惑。 我需要為給定的<repo> URI 的所有分支中的所有提交檢索完整的 Git 補丁 (diff)。

目前我正在做以下事情:

$ git clone <repo>
$ git rev-list --all | xargs git show

然后我擔心: Git 是否在其索引中獲取所有存儲庫數據(包括來自所有分支的所有提交),還是僅獲取主分支的完整歷史記錄?

換句話說,我的問題是:單獨的git clone是否足以獲得我需要的“完整”補丁/差異?

更新: <repo>可能有幾個孤立的分支

git clone應該復制包含所有分支的整個存儲庫。

嘗試克隆它,然后運行git branch -a 它應該列出所有分支。

更新- 在對另一個答案的評論中,您要求提供 git 行為的文檔。 那將是git clone文檔( https://git-scm.com/docs/git-clone )。 如果這就是您實際要求的內容,那么您應該在問題中這么說,而不是將真正的問題隱藏在評論中。 也就是說,請記住,對文檔的請求是無關緊要的,如果您需要 git 文檔,通過谷歌搜索相關命令很容易找到它們。


Git 是否獲取其索引中的所有存儲庫數據(包括來自所有分支的所有提交),還是僅獲取主分支的完整歷史記錄?

好...

至於您要問什么,默認情況下clone復制所有分支的完整歷史記錄。 您可以使用single-branchdepth等選項限制此行為,但默認復制所有內容。

但是,您的術語有點問題。 index通常是項目的單個快照,表示git commit記錄的內容。 (例外是在合並期間,當它可能存儲沖突的文件的多個狀態時。)它不是存儲歷史的地方,也不是rev-list查詢的內容。

因此 git 不會“在其索引中獲取所有存儲庫數據”; 它獲取本地數據庫中的數據。

此外,除了所有分支的歷史記錄之外,可能還有默認情況下未獲取的其他信息。 但如果問題只是關於分支及其歷史,那么是的,一切都被獲取了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM