如何在远程repo中从master中删除GIT分支,并从另一个分支启动新分支?

如何在远程repo中从master中删除GIT分支,并从另一个分支启动新分支?,git,version-control,bitbucket,git-branch,Git,Version Control,Bitbucket,Git Branch,我意外地从源代码中的主分支创建了一个新分支,并将更改提交到该分支 让我们调用我创建的新分支 但是我应该从另一个分支创建新的分支,比如说Feature\u分支。主分支不是最新的,我的团队将所有更改提交给Feature\u branch,我应该从中创建新分支。这就是我想要的 删除我创建的分支,即意外分支。我不想丢失我在本地所做的更改,因为我想用这些更改创建一个新分支 从功能\u分支创建新分支。并提交更改。更改意味着,我已提交给分支机构的更改以及本地未提交的更改 请帮帮我。我是GIT新手。如果不想

我意外地从源代码中的主分支创建了一个新分支,并将更改提交到该分支

让我们调用我创建的新分支

但是我应该从另一个分支创建新的分支,比如说
Feature\u分支
。主分支不是最新的,我的团队将所有更改提交给
Feature\u branch
,我应该从中创建新分支。这就是我想要的

  • 删除我创建的分支,即
    意外分支
    。我不想丢失我在本地所做的更改,因为我想用这些更改创建一个新分支

  • 功能\u分支创建新分支
    。并提交更改。更改意味着,我已提交给分支机构的更改以及本地未提交的更改


  • 请帮帮我。我是GIT新手。

    如果不想丢失未受限制的数据,可以使用
    $GIT stash
    命令临时但安全地保存数据。这将把数据存储在一个隐藏的地方。 之后,您可以使用
    $git checkout-b{new\u branch\u name}

    现在,您将到达新的分支机构。在这个分支中,您可以在使用
    $git stash apply
    命令之前获取隐藏的数据

    之后,您可以使用以下命令安全地删除先前创建的分支:

    要删除本地分支,请使用以下命令:

    $git branch-d{branch\u name}

    您可以使用-D选项强制删除分支,如下所示:

    $git branch-D{branch\u name}

    可以使用以下命令删除远程分支:

    $git push origin--删除{branch\u name}


    看看这是不是你要找的。但你在问题中也说过,你已经向分支机构提交了更改。如果您已提交更改,则隐藏将不起作用。那样的话,请把你的问题澄清一点。如果您可以在问题中说明分支名称,那就太好了。

    要保存未提交的更改,您可以使用
    git stash save“optional stash message”
    生成一个(兑现所选文件)

    这样你就可以缓存你的文件,这样你就不会丢失它们。在
    git stash
    之后,您可以通过
    git branch-d
    本地删除意外生成的分支,对于远程删除
    git push origin--delete

    签出将在其中启动新分支的分支(
    git checkout
    ),并在那里使用
    git branch
    创建新分支,并按照上面的说明签出此分支,然后使用
    git stash apply stash@{0}
    应用生成的存储

    关于这一点,
    git stash
    的工作原理很简单

    编辑,为什么问题不是很清楚: 如果您的分支中的更改已推送到远程服务器,那么
    git stash
    将无法工作。在这种情况下,您必须提交,其中包括您不希望丢失的更改。
    git revert
    命令将创建具有相反效果的新更改,从而撤消指定的旧提交,从而使更改再次可用且不会丢失


    git revert
    之后,您将更改的文件保存在工作目录中,您可以创建新的分支。如果新分支在另一个分支中启动,则必须再次隐藏未受限制的文件,创建并签出新生成的分支,并按照上面的说明在该分支中应用隐藏。

    您只需将创建的提交重新设置到所需的位置即可


    根据分支的数量,手动创建一个新分支、一次选取一个分支并删除旧分支可能更容易。

    提问者不希望丢失的意外分支中的更改在哪里?在您的示例中,只需删除这个分支
    git branch-d{branch_name}
    即可删除这些更改,而提问者不会这么做……我已经更新了答案。但是提问者说他已经向分支机构提交了更改。在这种情况下,git隐藏将不起作用。是的,当然,这个问题还不够清楚…@Ankush Chavan我对这个问题进行了编辑以使其清楚。我希望你现在能理解我的处境。是的,我已经提交了我在源代码中的更改,并且在本地代码中还有一些未提交的更改。如何继续?我已将更改推送到远程服务器。我想撤销这一点,也不想在我的本地应用程序中丢失这些更改。请告诉我,如果我的理解是正确的:我必须首先隐藏我所有的更改。然后恢复我在远程服务器中所做的提交。从我所需的分支创建一个新分支并应用隐藏。然后将更改提交到origin中的新分支,并删除我创建的意外分支。它是正确的吗?首先
    git revert
    用于还原原始位置的更改,对吗?那么,第二次
    git revert
    的目的是什么?在
    git revert
    之前,您必须首先隐藏更改的文件(对于本地未提交的更改)。然后
    git revert
    ,然后再次隐藏来自git revert的文件(现在有2个隐藏(使用git隐藏列表显示所有隐藏)。然后签出要在其中启动新分支的分支,创建新分支并签出新分支。然后应用这两个隐藏,您将在新分支中拥有所有更改的文件!好的,明白了。非常感谢。你救了我的命:)如果我答对了你的问题,Git会提供这个机会。从你的问题来看,我想说的是将
    意外分支
    重设为
    功能分支
    ,从
    主分支
    (或者
    主分支
    ,你的问题并不完全清楚)。这就是自
    意外分支中的Master之后所做的任何更改(提交)