2011-11-08 71 views
12

当我刚开始使用此回购时,我之前没有使用过git,并通过错误地填写我的电子邮件或其他东西来改变设置,所以所有提交都是由用户“未知”。我在这里找到了一个答案,将所有“未知”提交转换为我的名字,但实际上做了什么是重复提交并应用我的名字。所以现在我拥有所有这些“未知”用户提交。github:你会如何删除某个用户提交的所有提交

所以我想知道一些命令运行删除所有提交“未知”的用户。

回答

13

你将不得不使用git filter-branch(在你的回购),并强制推送到github。从手动

的例子,几乎涉及您希望从特定用户删除提交了同样的情况:

git filter-branch --commit-filter ' 
    if [ "$GIT_AUTHOR_NAME" = "Darl McBribe" ]; 
    then 
      skip_commit "[email protected]"; 
    else 
      git commit-tree "[email protected]"; 
    fi' HEAD 

注意,这将改写你的历史,它可能会影响到其他人谁也使用repo.Github建议对合作者:

与合作者

您可能有拉你的污点分支,创建合作者处理3210他们自己的分支。他们拿到你的新分支后,他们需要在他们自己的分支上使用git rebase在 上重新绑定它们。协作还应确保其分支 不会重新引入该文件,因为这将覆盖.gitignore 文件。确保你的协作使用rebase而不是合并,否则他只会重新引入该文件,并且整个受污染的历史......和 可能会遇到一些合并冲突。

http://help.github.com/remove-sensitive-data/

+0

大...这解决我的问题....非常感谢.. –