git - 如何在不更改的情况下将分支 merge 到 master 中?

标签 git git-branch git-extensions

我想将集成分支 merge 到 master,但我不想改变任何东西只是为了看起来不错。

集成分支是灰色的。这个分支包含很多变化,我想弄个技巧。要重置它,何时从 master 拆分,因为我可以看到最后的更改并将它们与 master 的一次提交一起提交。因此 master 将包含来自集成分支的最新版本的文件,但集成仍将与 master 分开。

我想将集成 merge 到 master 中,仅可视化(没有更改),以便在历史上看起来不错,因为我已经通过该单次提交进行了更改。

enter image description here

最后一个问题是:如何在 master 中 merge 集成而不对 master 进行更改,只影响历史(视觉上)?

我想这样做,因为:

  • 在我从主项目结构拆分集成被修改后,现在我有很多冲突。手动进行 merge 更容易。在那之后,我只想在 master 上“merge ”集成而不进行更改(因为已经存在)。
  • 最佳答案

    我同意,在几乎所有情况下,您都不应该按照 OP 的要求去做,但我确实相信有时这样做确实有意义。我不会用我的理由来避免关于版本控制纯度的争论。

    有很多方法可以做到这一点,但这里是一种。请注意,此命令使您能够真正搞砸您的生活(git 历史),所以要小心。

    git reset "$(git commit-tree -p "$BRANCH_NO_CONTENT_CHANGE" -p "$BRANCH_PRETENDING_TO_MERGE_FROM" -m "Administrative (no-change) merge of $BRANCH_PRETENDING_TO_MERGE_FROM" "$(git log -n 1 --pretty=format:%T "$BRANCH_NO_CONTENT_CHANGE")")"
    

    在 OP 的上下文中,BRANCH_NO_CONTENT_CHANGE是大师和BRANCH_PRETENDING_TO_MERGE_FROM是整合。

    我也在“反向”中使用了它,其中我有一个神奇的分支,在那里发生了神奇的事情,我想让魔法分支的内容与捐助者分支相同(将最后一个变量的最后一个实例更改为另一个名称,更改 merge 提交消息 s/no-change/overwrite/,并忽略名称的语义)。除了保留历史之外,有点像强制 push 。

    我强烈建议仔细检查文件的位置以及名称和内容,并进行测试 之前 push 这些改变,并将你的罪永远具体化。

    关于git - 如何在不更改的情况下将分支 merge 到 master 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47670237/

    相关文章:

    Github pull 请求模板未显示

    git - 删除一个github分支

    git - Bitbucket - 将分支与另一个分支同步

    git - 在 Git 中,创建新分支时包含 <start-point> 的值(value)是什么?

    java - 如何使用 gitExtension 将存储库从 Linux 克隆到我的 Windows 桌面

    git-extensions - Git 扩展和 Meld 合并

    android - Android Studio Bumblebee 中Git 或Github pull, push 报错的解决方法 | 2021.1.1

    git - 我可以 hg 从 BitBucket 克隆一个 git 存储库吗?

    Git rebase 一次又一次地回到同一个地方

    git-extensions - 清理 GitExtensions 中的存储库