如何用git"拆分"文件

Ste*_*fan 10 git

如果我必须在我的开发分支上关注文件:

# file.rb

class Code
 def methodA
  'aA1'
 end
 def methodB
  'bB2'
 end
end
Run Code Online (Sandbox Code Playgroud)

但在我的分支上,我想将方法​​分成不同的文件:

# in file.rb
class Code
  def methodA
    'aA1'
  end
end

# in extra.rb
class Code
  def methodB
    'bB2'
  end
end
Run Code Online (Sandbox Code Playgroud)

我可以简单地在开发时创建文件,然后签出以掌握,重新定位并手动分离文件,但是是否可以进行设置以便当我对开发进行更改时它将被转移到文件的右侧"部分"在主人

Von*_*onC 4

将分割“转移到‘’”上文件的正确“部分master”将意味着 Git 能够检测到分割。

正如最近的这个帖子(本月:2009 年 5 月)所示,Git 还没有完全实现。
这可能适用于其中一小部分拆分为另一个文件的大文件,但对于小文件,内容看起来“太不同”,以至于 git rename 检测器无法拾取更改。

因此,如果您在创建rebasemaster”后development没有发布 ( push) ' master',那么在 ' development' 之上的 ' ' 可能会起作用,因为这样的操作 ( rebase) 将重写 ' ' 分支上提交的 SHA-1 master(因为它们会被重播)在“”分支的提交之上development

正如我在rebase vs.merge中所述,如果您的开发分支不是“太远”(就 master 的修改而言),另一个策略是在 master 之上重新建立开发基础,进行拆分,然后将开发合并回 master (此时快进合并)