在分割提交后合并更改而不提及作者名称

时间:2013-11-20 12:02:24

标签: git github

我被要求在某人的存储库中将一个大的提交分成多个较小的提交。 所以我分叉了存储库。做了多次提交并做了多次提交。

基本上我现在就有这个:

  
      
  • 较小的提交3 [作者:A]
  •   
  • 较小的提交2 [作者:A]
  •   
  • 较小的提交1 [作者:A]
  •   
  • 一些较早的提交[作者:C]
  •   

原始回购是:

  
      
  • 一个巨大的提交[作者:B]
  •   
  • 一些较早的提交[作者:C]
  •   

我想做的是将更改合并回原始回购,而不提及“作者A”。 也就是说,原始回购应该看起来像原始作者分裂:

  
      
  • 较小的提交3 [作者:B]
  •   
  • 较小的提交2 [作者:B]
  •   
  • 较小的提交1 [作者:B]
  •   
  • 一些较早的提交[作者:C]
  •   

这样做的正确和/或更快/最简单的方法是什么?

如果以这种方式更改作者是不可能的,那么合并更改的最简洁方法是什么,而不会过多地混淆提交历史(我们正在使用github)。

1 个答案:

答案 0 :(得分:1)

假设您有权访问原始回购 B ,您可以cherry pick A 提交的提交。这样你就可以做那些提交,好像它们是由 B 制作的。

Git cherry picking :给定一个或多个现有提交,应用每个引入的更改,为每个提交录制一个新提交。

编辑:默认情况下,cherry pick会更改提交者值,但会将 author 值保留为原始提交。为防止这种情况,您应该使用 - no-commit 参数,然后提交更改。

git cherry-pick --no-commit  86d85b4972c46c80cba49fcc8a458b803cef17f6
git commit

这样,提交者作者都将设置为新用户。