代码之家  ›  专栏  ›  技术社区  ›  Arthur Ulfeldt

使用github批量更改git上的电子邮件地址

  •  2
  • Arthur Ulfeldt  · 技术社区  · 14 年前

    我最近克隆了一个hg-repo到git,这样我就可以在github上发布它了。很多电子邮件地址是错误的,我想使用git-rebase来改变他们之前,任何人分叉这个项目。如果我改变了它们,我该如何将新的、完全回扣的回购推向github呢?我可以重新设置基准然后 git push

    3 回复  |  直到 14 年前
        1
  •  3
  •   Jörg W Mittag    14 年前

    几乎。你需要使用 git push -f (或 --force )为了改写过去的历史。


    完全不同的观点:你为什么要 git rebase “更改提交者电子邮件地址而不是 git filter-branch --env-filter ?

        2
  •  1
  •   carpeliam    13 年前

    我还没有足够的声誉来评论Jrg的文章,但是github有一个很好的shell脚本,使用 git filter-branch --env-filter 这帮我在家里做了同样的事情 http://help.github.com/changing-author-info/ . 这是Jrg帖子上其他评论者谈论的一个例子。这对我有用。

        3
  •  0
  •   mfontani    14 年前

    一种方法是:

    • 创建一个.mbox文件,其中包含自回购开始以来的所有修补程序: git format-patch --stdout --root > repo_history.mbox
    • 编辑 repo_history.mbox 文件,根据需要更改所有电子邮件地址。这可能很简单 perl -pi~ -e's/oldemail\@host\.org/newemail\@newhost\.com/gi' repo_history.mbox
    • 创建新回购: mkdir ~/newrepo; cd ~/newrepo; git init
    • git am /path/to/repo_history.mbox

    我刚刚测试了我的回购,似乎上面已经做了诀窍。 如果你想了解更多细节,请告诉我。

    重要 之前 你曾经发布过这个存储库,而不是其他人已经从中提取过——我看到你的问题已经说明了这一点,但这只是为了重申这一点的重要性:)