[git]如何repo sync一份干净的code

13 篇文章 0 订阅
4 篇文章 0 订阅

android 系統開發會需要經常sync code,如果單獨使用 repo sync 命令,會出現類似以下錯誤:

kernel-3.10/: discarding 1 commits
error: device/common/: device/common checkout 270d71d1cf6bca70c763edb4b6c2162ac9f5d680 
error: vendor/google/: platform/vendor/google/ checkout 38ab36dd74b552833f67480c618507804626e4de 

這是本地改動跟remote code衝突等原因引起,這裡的本地改動也有可能是build 時候修改的。這個解決辦法是進到對應的目錄進行 checkout 操作.



也有在repo sync 之前下命令的時候一步到位的命令,會方便很多:

sudo chown -R user:user ./*;repo forall -c 'git reset --hard; git clean -f -d -x'; time repo sync; date;

chown 更改文件擁有者和所屬組別。

repo forall 遍歷 git 目錄。

git reset --hard 是將當前HEAD 重置,不會留下之前的痕跡。

git clean 清除未追蹤的文件。d是目錄,f是文件。

最後再repo sync,這個時候download 下來的code 就是服務器上一致的code了。



另外,如果要單獨sync一個git目錄,可使用以下命令:

time repo sync git_dir;date


[end_by_ChampWang]



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值