2011-04-26 79 views
0

我有本地项目这是一个git存储库。我已经将这个本地项目添加到Android清单文件。无论何时在我的本地存储库中有新的提交,我都可以使用repo sync -n <local project>来获取我的本地项目。然而,当我尝试使用repo sync -l <local project>更新工作目录,我得到一个错误无法使用回购更新工作目录

error.GitError: try rev-list ('^0f4e601043d095c8920dad010e5814ef22a20f45', 'HEAD', '--'): fatal: bad object 0f4e601043d095c8920dad010e5814ef22a20f45

任何人都可以提供指针解决这个问题。

回答

0

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

如果你真的很懒,有很多的项目,下面的bash命令可以使生活更轻松:

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

注意:此命令假定:

  • 您在回购的基本目录和所有子目录是git项目
  • 您没有任何未提交的更改(使用回购状态来仔细检查此问题)

它可能不会很难让脚本更智能一些(递归,寻找.git目录等)