【问题标题】:When I use git rebase to edit a commit, will file in all the commits after that commit be modified?当我使用 git rebase 编辑提交时,会在该提交之后的所有提交中归档吗?
【发布时间】:2021-07-29 14:50:34
【问题描述】:

我想在提交中编辑一个文件(不是 HEAD)。我读了this answer,当我这样做时,我在提交之后的提交中遇到了冲突。我想知道该提交之后所有提交中的文件是否会被修改,这意味着很多冲突。

【问题讨论】:

  • 应该可以解决冲突并修改下一次提交,然后它应该保持固定,除非它也与后续提交发生冲突。你试过了吗?
  • 不是所有的提交。只有那些被重新定位的
  • 所以我只需要为下一个后续提交解决冲突,而不是所有后续提交?
  • @Tokubara:确切的冲突集,以及它们何时以及如何再次发生,取决于原始提交的确切集和您所做的更改。除非您向我们展示所有提交(包括您将做出的新提交!),否则我们无法预测它们。

标签: git rebase


【解决方案1】:

从技术上讲,您不会修改任何提交中的任何文件。相反,您正在接受较旧的提交,使用它们来提取和更新工作树,并使用生成的工作树文件来生成新的(并且可能是改进的)提交,您将使用 而不是 较旧的提交。

无论何时执行此操作,都可能会挑选一个较旧的提交(rebase 本质上是一系列挑选操作)会导致合并冲突。如果发生这种情况,您必须解决合并冲突。 Git 不能为你做这件事:如果可以的话,它一开始就不会产生合并冲突。当“你”和“他们”对同一行进行不兼容的更改,或者以 Git 无法自行解决的方式进行更改时,就会发生合并冲突。 rebase 的独特之处在于“你”和“他们”通常是同一个人,而在其他合并冲突中有用的 --ours--theirs 的概念变得有些荒谬。

【讨论】:

    猜你喜欢
    • 2017-11-04
    • 2012-06-05
    • 2017-09-25
    • 1970-01-01
    • 2017-04-10
    • 2021-10-02
    • 2017-10-05
    • 1970-01-01
    • 2011-09-23
    相关资源
    最近更新 更多