首页 > 解决方案 > Git - 取消合并已删除的分支

问题描述

设想:

问题: 我怎样才能找回我删除并取消合并的分支,以便在没有特征分支(蓝色)的情况下,master 看起来很干净?将来我可能还需要向该功能分支添加提交。

我查看了以下资源: Git undo local branch delete Git unmerge a branch

我是否需要同时执行上述两项才能获得所需的结果?还是我想创建一个新分支并还原在功能分支中添加的提交并合并它?

我完全糊涂了,请把我重定向到正确的道路。下面给出了该用例的示例 Git Graph。

注意:功能分支(蓝色)之间没有合并。

var gitgraph = new GitGraph({
            template: "metro", // or blackarrow
            orientation: "horizontal",
            author: "John Doe",
            mode: "compact" // or compact if you don't want the messages
        });

        const master = gitgraph.branch("master");
        master.commit("Init the project");
        master.commit("Master Commit");
        master.tag("v1.0");

        const newFeature = gitgraph.branch("feature-1");
        newFeature.commit("Feature#1 Commit-1");
        master.commit("Hotfix Bug1");

        const development = master.branch("development");
        development.commit("Development Commit-1");
        development.commit("Development Commit-2");

        master.commit("HotFix Bug2");

        const anotherFeature = master.branch("feature-2");
        anotherFeature.commit("Feature#2 Commit-1");
        anotherFeature.commit("Feature#2 Commit-2");

        newFeature.commit("Feature#1 Commit-2");
        newFeature.commit("Feature#1 Commit-3");

        master.commit("HotFix Bug3");
        master.commit("HotFix Bug4");

        newFeature.merge(master, "Release Feature#1");
        master.tag("v2.0");

        master.commit("Additional Commit-1");

        development.merge(master, "Development Merge");
        
        master.commit("Additional Commit-2");

        master.tag("HEAD");
<script src="https://cdnjs.cloudflare.com/ajax/libs/gitgraph.js/1.11.4/gitgraph.min.js"></script>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Git Graph</title>
</head>
  <body>

    <canvas id="gitGraph"></canvas>
    
  </body>
</html>

Git Graph 分支和合并:用例

标签: gitgit-mergebranching-and-merging

解决方案


只需撤消主分支上的所有提交,直到您返回合并提交(使用已删除的分支)。

由于合并两个分支也是一个提交,因此您可以撤消它。

注意:如有必要,您还可以使用git rebase更多关于这里)将您所做的单个提交移动到另一个分支


参考:


推荐阅读