python - 在不更改 SHA 的情况下将文件和提交历史从一个 git 分支移动到另一个

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

我有一个名为 add-ivp-solver 的分支,我已将其作为 PR 提交给 GitHub 上的一个项目。该分支有点臃肿,我们现在希望将一些文件从 add-ivp-solver 移到一个名为 add-models 的新分支,该分支将被提交作为 future 的另一个公关。

我想知道是否可以将文件及其关联的提交历史从 add-ivp-solver 移动到 add-models 以允许我们清理 merge add-ivp-solvermaster 并关闭原始 PR。

我认为 git filter-branch可能是我需要的。这应该允许我从 add-ivp-solver 删除文件和提交历史到 add-models,但我担心它会留下 add-ivp -solver 处于“不一致状态”,​​这将使 merge 和关闭 PR 几乎不可能。

最佳答案

I am concerned that it will leave add-ivp-solver in an "inconsistent state" which will make it nearly impossible to merge and close the PR.

不,它会让那个分支有不同的历史,这意味着:

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

    git checkout add-ivp-solver
    // do your filter-branch
    git push --force origin add-ivp-solver
    
  • PR 将自动调整以考虑新的历史记录(无需执行任何操作)

  • 原始 repo 的维护者可以再次测试该 PR 的 merge

关于python - 在不更改 SHA 的情况下将文件和提交历史从一个 git 分支移动到另一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25504702/

相关文章:

git - 远程标签未在本地显示

svn - 不同版本产品的项目结构

python - 请求 Simpy 资源永远不会成功

python - 用于查找运行服务器(IIS)的用户的命令?

python - 有没有办法提高循环速度,或者在不使用 for 循环的情况下以更快的方式做同样的事情?

git - 删除不属于 git 的大旧文件

git - BitBucket/Git 错误 : You can only push your own commits in this repository

python - 为什么 "www".count ("ww") 返回 1 而不是 2?

svn - 将多头项目从 SVN 过渡到 HG

python - 查找 Python Math 和 CMath 模块的特定版本