[英]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-branch
或depth
等選項限制此行為,但默認復制所有內容。
但是,您的術語有點問題。 index
通常是項目的單個快照,表示git commit
記錄的內容。 (例外是在合並期間,當它可能存儲沖突的文件的多個狀態時。)它不是存儲歷史的地方,也不是rev-list
查詢的內容。
因此 git 不會“在其索引中獲取所有存儲庫數據”; 它獲取本地數據庫中的數據。
此外,除了所有分支的歷史記錄之外,可能還有默認情況下未獲取的其他信息。 但如果問題只是關於分支及其歷史,那么是的,一切都被獲取了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.