2011-11-08 115 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

大...這解決我的問題....非常感謝.. –