我们使用git子模块来管理大型项目。我们在这个大项目中有大约20个子模块,子模块不经常更新。
在执行HTTP/1.1 200 OK
Access-Control-Allow-Origin: https://www.3dhubs.com
access-control-expose-headers: api-version, content-length, content-md5, content-type, date, request-id, response-time
Content-Type: application/json
Date: Wed, 14 Sep 2016 15:48:30 GMT
Content-Length: 227629
Connection: keep-alive
命令之前,告诉git检查已经在超级项目的索引中指定的提交,我想检查子模块中是否存在提交?
像git submodule update
这样的东西,但是对于子模块。
如果它不存在,那么我想在子模块中做一个git branch --contains $SHA
,它不会包含提交或git fetch
理想情况下,我想避免对所有20个子模块执行git submodule foreach git pull
,如果子模块提交与repo指向的不同,则执行git fetch。
答案 0 :(得分:1)
git submodule foreach --quiet \
'git branch --contains <sha1> 2>/dev/null || echo $(basename $(pwd)) no such commit'
如果它在当前分支中(或者更确切地说在当前树中),将打印有关当前提交的信息,并打印出没有这样的提交(||
之后的部分)。
||
之后的部分可以用来运行git fetch而不是打印信息。