在不更改SHA的情况下,将文件从一个git分支移动到另一个git分支

时间:2014-08-26 11:26:03

标签: python git version-control git-rewrite-history

我有一个名为add-ivp-solver的分支,我已经在GitHub上作为项目的PR提交了。分支已经变得有点臃肿,我们现在希望将一些文件从add-ivp-solver移到一个名为add-models的新分支,该分支将在未来作为另一个PR提交。

我想知道是否可以将文件及其关联的提交历史记录从add-ivp-solver移动到add-models,以便我们将合并add-ivp-solver清除到{{} 1}}并关闭原始PR。

我认为git filter-branch可能就是我所需要的。这应该允许我删除文件并将历史记录从master提交到add-ivp-solver,但我担心它会使add-models处于"不一致状态"这将使合并和关闭PR几乎不可能。

1 个答案:

答案 0 :(得分:1)

  

我担心它会使add-ivp-solver处于“不一致状态”,​​这将使得几乎不可能合并和关闭PR。

不,它将使该分支具有不同的历史记录,这意味着:

  • 你需要强制将它推到你的叉子上

    git checkout add-ivp-solver
    // do your filter-branch
    git push --force origin add-ivp-solver
    
  • PR会自动调整,以便考虑到新的历史记录(无所事事)

  • 原始仓库的维护者可以再次测试该PR的合并