[英]git -submodules / repo - How to use commit and branch for a bunch of branches in separate modules?
我有repo
包裝器和大約十幾個不同的git存儲庫。
我想要一個補丁,以后可以通過以下方式應用/使用:
我想在所有更改的子模塊上執行以下命令:
git checkout -b all_sub_branch
git commit -a all_submodules
git format-patch all_submodules aaa.patch
git apply aaa.patch
純香草git答案(使用子模塊):
為每個子模塊完成的這種過程可以通過以下方式啟動:
git submodule foreach [--recursive] ...
帶有“ ...”的git別名將包括您的所有命令。
foreach
在每個檢出的子模塊中評估一個任意的shell命令。
該命令可以訪問變量$name
,$path
,$sha1
和$toplevel
:
$name
是.gitmodules
相關子模塊部分的.gitmodules
,$path
是相對於超級項目的子模塊目錄的名稱,$sha1
是超級項目中記錄的提交,並且$toplevel
是超級項目$toplevel
的絕對路徑。該命令將忽略超級項目中定義但未檢出的所有子模塊。
除非給出--quiet
,否則foreach
在評估命令之前會打印每個子模塊的名稱。
如果給出了--recursive
,則遞歸遍歷子模塊(即,給定的shell命令也在嵌套子模塊中求值)。
問題是android repo
wrapper命令以自己獨特的方式執行git子模塊的工作。
因此, git submodule foreach
的等效項可能是: repo forall
,例如:
repo forall -c 'git status'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.