如何从远程仓库中的 master 删除 GIT 分支并从另一个分支启动一个新分支?

时间:2021-01-30 16:09:59

标签: git version-control bitbucket git-branch

我不小心从原始的 master 分支创建了一个新分支,并将我的更改提交到该分支。

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

但我应该从不同的分支创建新分支,比如 Feature_Branch。主分支不是最新的,我的团队将所有更改提交到 Feature_Branch,我应该从中创建新分支。这就是我想要的。

  1. 删除我创建的分支,即Accidental_Branch。我不想丢失在本地所做的更改,因为我想使用该更改创建一个新分支。

  2. Feature_Branch 创建一个新分支。并提交更改。更改含义、我已承诺的更改 Accidental_Branch 以及我未提交的本地更改。

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

3 个答案:

答案 0 :(得分:1)

如果不想丢失未提交的数据,可以使用 $ git stash 命令临时但安全地保存数据。这会将数据存储在一个隐藏的地方。 之后,您可以在分支之间切换或使用 $ git checkout -b {new_branch_name}

创建新分支

现在,您将登陆新的分支。在此分支中,您可以获取使用 $ git stash apply 命令之前隐藏的数据。

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

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

$ git branch -d {branch_name}

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

$ git branch -D {branch_name}

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

$ git push origin --delete {branch_name}

看看这是否是您要找的。但是你在你的问题中也说过你已经对分支进行了更改。如果您已提交更改,则存储将不起作用。在这种情况下,请稍微澄清一下您的问题。如果您能在问题中说明分支名称,那就太好了。

答案 1 :(得分:1)

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

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

签出您将开始新分支的分支 (git checkout <branch_name>) 并使用 git branch <branch_name> 在那里创建您的 分支,并按照上面的说明签出,然后申请您使用 git stash apply stash@{0} 生成的存储。

git stash 的工作原理在此 website-blog 上有简单的解释。

编辑,为什么问题不是很清楚:

如果您意外分支中的更改已经推送到远程服务器,那么 git stash 不起作用。在这种情况下,您必须 revert 提交,其中包括您不想丢失的更改。 git revert 命令将创建具有 相反 效果的新更改,从而撤消指定的旧提交,使更改再次可用且不会丢失。

git revert 之后,您在工作目录中拥有更改的文件,您可以创建新分支。如果新分支在另一个分支中开始,您必须再次存储未提交的文件,创建并签出新生成的分支,并在此分支中应用存储,如上所述。< /p>

答案 2 :(得分:1)

您可以将您创建的提交重新定位到您想要的位置。

根据有多少,手动创建一个新分支可能更容易,一次挑选一个并删除旧的。

相关问题