【问题标题】:Git replay changes on new directory of updated initial filesGit 在更新的初始文件的新目录上重放更改
【发布时间】:2017-03-11 01:36:24
【问题描述】:

我有一个 repo,我首先提交了大量文件,然后进行了很多更改。一段时间后(现在),我想将相同的提交应用于相同起始文件的更新版本。最好的方法是什么?似乎有很多选项——git diff、git format-patch、git filter-branch 等等。我尝试了一些,但似乎得到了很多错误。

我已将其压缩为两个提交 - “初始导入”和“更改”。我想我想做的是使用新的“初始导入”(更新的基本文件)开始一个新的存储库,然后在顶部选择“更改”提交。然后,我可以将上游设置为原始并推送 -f。但是,这不起作用。

这样做的适当方法是什么?

【问题讨论】:

  • 不是一个全新的 repo,而是从一个新分支开始并将“更改”重新定位到它。
  • 你不需要压缩任何东西来做一个变基。
  • 太棒了,感谢疯狂物理学家。那行得通。我也在 rebase 中添加了一个“选择他们的”策略,只是为了让事情变得更顺利。

标签: git merge diff patch rebase


【解决方案1】:
  1. 新建一个分支

  2. 删除其中的所有内容

  3. 将新的初始文件复制到

  4. Cherry-pick 中的“内容”提交:

    git cherry-pick --strategy=recursive -X theirs <"contents"-commit-hash>

【讨论】:

    猜你喜欢
    • 2013-09-11
    • 2011-07-22
    • 1970-01-01
    • 2015-01-11
    • 2012-11-29
    • 1970-01-01
    • 1970-01-01
    • 2010-11-08
    • 2022-10-18
    相关资源
    最近更新 更多