2011-08-17 81 views

回答

7

是的。 git filter-branch的手冊頁提供了一個現成的示例:這會從工作樹中刪除「Darl McBribe」的所有提交(在您的情況下,這將是User1)。

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

其中函數skip_commit定義如下:改變你的回購的歷史時,但

skip_commit() 
{ 
    shift; 
    while [ -n "$1" ]; 
    do 
      shift; 
      map "$1"; 
      shift; 
    done; 
} 

,一如既往:如果有人從回購拉你修改它,he'll be in trouble之前。

2

是的,你可以用git filter-branch來做到這一點,但你必須這樣做來考慮其含義。尤其是當其他提交基於必須刪除的用戶提交時。

當只有很少的提交必須被過濾時,那麼你應該使用cherry pick和rebase。

相關問題