如何在远程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之后所做的任何更改(提交)