2012-02-22 175 views
3

我有一个git仓库,我是唯一的提交者,迄今为止,这已经发布在github上。我发现一些提交,从另一台计算机完成,有错误的作者信息。我的想法是从github中删除存储库,重写历史并将其重新发布为新的。 对于这样的目的,我创建了一个简单的脚本:git作者重命名不工作

git filter-branch --commit-filter ' 
      GIT_COMMITTER_NAME="Author Name"; 
      GIT_AUTHOR_NAME="Author Name"; 
      GIT_COMMITTER_EMAIL="email"; 
      GIT_AUTHOR_EMAIL="email"; 
      git commit-tree "[email protected]"; 

    ' HEAD 

应重命名所有的提交。问题是混帐与

Cannot rewrite branch(es) with a dirty working directory. 

回复,但一个git地位为我提供

# On branch master 
nothing to commit (working directory clean) 

约我失去了什么你知道吗?将不胜感激任何关于如何重命名所有提交而不丢失历史的建议。

+0

你使用的是什么版本的Git?请参阅http://stackoverflow.com/a/9246622/6309 – VonC 2012-02-22 07:12:46

+2

尝试发出'git reset --hard'来清理工作树。 – Eduardo 2012-02-22 07:14:27

+0

似乎重置解决了问题。我已经在运行一个更新的git版本(1.7.2.5)。 – fluca1978 2012-02-22 09:21:33

回答

0

尝试通过运行git clean -dxf删除工作目录中的未跟踪文件。

此外,您需要在提交过滤器中导出这些变量。如果你不这样做,Git将不会看到它们,所以它们不会改变Git的默认行为。