git submodule没有权限时如何更新到某个提交

当某个git submodule没有权限时,无法拉到代码,也无法checkout到某个revision,所以常规的checkout更新submodule的操作行不通。

但有时我们确实有这样的需求,去更新这个submodule到最新版本,因为虽然你没权限,但是打包机是有的,更新这个submodule可以打出带上最新submodule的包。

是有办法的,虽然拿不到代码,但是最新的commit hash是可以拿到的,剩下的就是怎么告诉主repo更新这个submodule到指定的revision。

这里用到了git的update-index命令

git remote update 
git rev-parse origin/master:PathToSubModule   
// suppose we get this  6b7ad40e8287d7e452c29e0e2cffa0d46e49f077

git ls-files --stage PathToSubModule
//   160000 8ad2765f410bbac1805ca931cb5abcf8b3986c15 0       SubModuleName

// done the job
git update-index --add --cacheinfo 160000 6b7ad40e8287d7e452c29e0e2cffa0d46e49f077 SubModuleName

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值