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

     2023-02-19     143

关键词:

【中文标题】如何从远程仓库中的 master 删除 GIT 分支并从另一个分支启动新分支?【英文标题】:How to delete GIT branch from master in remote repo and start a new branch from another branch? 【发布时间】:2021-05-04 07:10:24 【问题描述】:

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

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

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

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

    Feature_Branch 创建一个新分支。并提交更改。更改含义,我已提交给Accidental_Branch 的更改以及我未提交的本地更改。

请帮帮我。我是 GIT 新手。

【问题讨论】:

如果我的问题没问题,Git 会为此提供Branch Rebasing。根据您的问题,我想说的是从Master(或master,从您的问题中不完全清楚)将Accidental_Branch 重新设置为Feature_Branch。那就是您自 Accidental_Branch 中的 Master 以来所做的任何更改(提交)都会重新基于 Feature_Branch 之上。然后,您可以重命名Accidental_Branch(或将其名称保留为假定它不是真实姓名中的“意外”并且真实姓名已经合适)。 【参考方案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

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

【讨论】:

发问者不想丢失的意外分支中的更改在哪里?在您的示例中,只需删除此分支git branch -d branch_name 即可删除这些更改,而提问者不会这样做... 我已经更新了答案。但是提问者说他​​已经提交了对分支的更改。在这种情况下,git stash 将不起作用。 是的,当然,问题还不够清楚…… @Ankush Chavan 我已经编辑了问题以使其清楚。我希望你现在了解我的情况。是的,我已经提交了我的原始更改,并且我的本地也有一些未提交的更改。我应该如何进行?【参考方案2】:

要保存未提交的更改,您可以使用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> 在其中创建您的 new 分支,并按照上述说明进行检查,然后将生成的存储应用到git stash apply stash@0.

git stash 的工作原理在此 website-blog 上进行了简单说明。

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

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

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

【讨论】:

我已将更改推送到远程服务器。我想撤消它,也不想在我的本地丢失这些更改。请告诉我我的理解是否正确:我必须先存储所有更改。然后恢复我在遥控器中所做的提交。从我需要的分支创建一个新分支并应用存储。然后将更改提交到 origin 中的新分支并删除我创建的意外分支。对吗? 第一个git revert 是用于恢复原点的更改,对吗?那么第二个git revert 是干什么用的? git revert 之前,您必须先存储更改的文件(对于本地未提交的更改)。然后git revert,然后再次存储来自 git revert 的文件(现在你有 2 个存储(使用 git stash list 显示所有存储))。然后签出您将启动新分支的分支,创建新分支并签出新分支。然后应用两个存储,你将在新分支中拥有所有更改的文件! 好的,知道了。谢谢你。你救了我的命:)【参考方案3】:

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

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

【讨论】:

如何从 Git 中删除无效的远程分支引用?

】如何从Git中删除无效的远程分支引用?【英文标题】:HowdoyouremoveaninvalidremotebranchreferencefromGit?【发布时间】:2010-11-0712:21:20【问题描述】:在我当前的仓库中,我有以下输出:$gitbranch-a*masterremotes/origin/masterremotes/public/master我... 查看详情

删除本地文件后git从远程仓库重新获取

删除本地文件后,想从远程仓库中从新Pull最新版文件。Git提示:up-to-date,但未得到删除的文件原因:当前本地库处于另一个分支中,需将本分支发Head重置至master.gitcheckoutmastergitreset--hardgit强行pull并覆盖本地文件gitfetch--allgitreset... 查看详情

如何创建/修改远程仓库+如何删除远程仓库+如何删除远程仓库中的某个文件或文件夹+如何使用git将本地仓库连接到多个远程仓库(代码片段)

首先我们来区分一些概念、术语、名词。不然脑子一锅粥,总是晕!!!博主对此深有体会!从中学到了没事要多总结、多归类!仓库有本地仓库和远程仓库之分。仓库都可以叫做服务端(器)。本地仓库有:Windows、Linux、MacOS。... 查看详情

怎么删除git远程仓库上某次commit

..._mastergitpushoriginold_master:old_master将本地old_master分支推送到远程old_master三、删除远程master分支设置github中默认分支为非master分支,否则,下一步删除操作被github禁止,github不能删除默认分支.将如下图中的DefaultBranch改成非master。删... 查看详情

git常用命令大全

Git常用操作命令:1) 远程仓库相关命令检出仓库:$gitclonegit://github.com/jquery/jquery.git查看远程仓库:$gitremote-v添加远程仓库:$gitremoteadd[name][url]删除远程仓库:$gitremoterm[name]修改远程仓库:$gitremoteset-url--push [name] [newUrl... 查看详情

从github远程仓库中删除文件夹或文件

...target,就直接push上去了,最后意识到了此问题,决定删除掉远程仓库中的target文件夹删除前:删除后:在github上只能删除仓库,却无法删除文件夹或文件,所以只能通过命令来解决 首先进入你的master文件夹下,GitBashHere,打开命令窗口$gi... 查看详情

git从入门到精通(合并分支,将更新提交到远程仓库,将本地分支与远程分支做关联)

...他分支合并到master分支 :gitmergexuzhiwen3.将更新提交到远程仓库: gitpushoriginmaster4.将本地分支与远程分支做关联,并做更新操作gitbranch--set-upstream-tomasterxuzhiwen : master为远程分支,xuzhiwen为本地分 查看详情

git中如何查看删除和建立远程仓库

...地Git仓库的远程仓库–GitHub、推送本地仓库到GitHub。6、如何将GitGub中的资源克隆到本地仓库中7、GitHub中配置SSH-Key8、Git中如何查看、删除和建立远程仓库9、如何通过cmd命令查看本机是否安装了Git或Git的版本号10、GitHub中的reposito... 查看详情

git-远程仓库的删除和重命名

在新版Git中可以用 gitremoterename 命令修改某个远程仓库在本地的简称,比如想把 pb 改成paul,可以这么运行:$gitremoterenamepbpaul$gitremoteoriginpaul注意,对远程仓库的重命名,也会使对应的分支名称发生变化,原来的&nb... 查看详情

git创建本地分支,推送到远程

...是基于当前分支创建的本地分支,假设当前分支是master(远程分支),则是基于master分支创建的本地分支dev。删除本地分支(必须保证不在删除的分支上,才能进行删除)gitbranch-ddev切换到本地分支gitcheckout分支名例如:gitcheckoutdev,... 查看详情

git常用命令

查看所有本地分支:gitbranch查看所有远程分支:gitbranch-r创建分支:gitbranchtest001master:从主分支master创建test001分支重命名分支:gitbranch-mtest001test002:将test重命名为test002切换分支:gitcheckoutyourbranch删除本地分支:gitbranch-dyourbranch---------------... 查看详情

git怎么把仓库的东西删除

...更改更新到github项目上去,删除完毕。效果如图所示。2.如何删除git远程仓库的某个文件git是大家通用的一种版本控制系统,便捷高效,各种命令需要牢记,今天介绍给大家的是git的删除命令,即将文件从远程仓库中删除的操作... 查看详情

git-5.远程仓库

...后,又想在GitHub创建一个Git仓库,并且让这两个仓库进行远程同步登陆GitHub名字填写为gittest,点击Createrepository英语好的同学自行翻译一下,我就不多做叙述了这里我们用下面箭头标示的方法,用终端推送一个存在的仓库首先选... 查看详情

如何删除git远程仓库的某个文件

git是大家通用的一种版本控制系统,便捷高效,各种命令需要牢记,今天介绍给大家的是git的删除命令,即将文件从远程仓库中删除的操作。首先,我们打开自己的本地GIT仓库,在根目录下右击鼠标,选择gitbash选项。2进入到我... 查看详情

git学习

1.创建本地仓库2.创建远程仓库3.将本地仓库中的代码推送到远程仓库3.如果本地代码有更新,推送到远程仓库有5.如果其他人也有推送(远程有更新),拉取到自己本地仓库中6.新用户将远程仓库克隆到本地本地仓库操作三个分区... 查看详情

git中的常用命令(代码片段)

初始化本地仓库gitinit远程地址连接gitremoteadd仓库名称远程地址url#添加远程地址gitremote#查看远程地址分支gitbranch-b分支名称#创建并切换本地分支gitpush仓库名称分支名称#创建远程分支gitbranch#查看本地分支gitbranch-a#查看所有分支,... 查看详情

git安装使用

...更多了3分支规范master分支:生产分支develop分支:开发分支4远程仓库码云gitremoteaddorign(自定义命名,默认origin)远程仓库地址(url)gitremote查看当前的远程仓库gitpush+originmaster本地仓库提交到远程仓库gitpush-f强制覆盖gitpush--set-upstreamori... 查看详情

git协作

远程仓库  当你从远程仓库克隆时,实际上Git自动把本地的master分支和远程的master分支对应起来了,并且,远程仓库的默认名称是origin。  要查看远程库的信息,用gitremote:650)this.width=650;"src="https://images2015.cnblogs.com/blog/74083... 查看详情