无法使用repo更新工作目录

时间:2011-04-26 10:13:59

标签: git sync repository

我有本地项目,这是一个git存储库。我已将此本地项目添加到Android清单文件中。每当我的本地存储库中有新的提交时,我就可以使用repo sync -n <local project>获取本地项目。但是,当我尝试使用repo sync -l <local project>更新工作目录时出现错误

  

error.GitError:尝试rev-list('^ 0f4e601043d095c8920dad010e5814ef22a20f45','HEAD',' - '):致命:坏对象0f4e601043d095c8920dad010e5814ef22a20f45

任何人都可以提供解决此问题的指针。

1 个答案:

答案 0 :(得分:0)

我今天早些时候遇到过这个问题 - 我找不到坏的对象,但似乎是因为在将所有项目置于无头状态后进行回购自我更新。手动检查主人并对所有子项目进行拉动解决了它。

如果你真的很懒并且有很多项目,那么以下bash命令可能会让生活更轻松:

for i in `ls -d */`; do cd $i; git checkout master; git pull origin master; cd ..; done;

注意:此命令假定:

  • 您位于repo的基本目录中,所有子目录都是git项目
  • 您没有任何未提交的更改(使用repo status进行仔细检查)

制作一个更聪明的脚本(递归,寻找.git目录等)可能并不难。