对于Git来说,我是一个新手,自从开始使用新客户端以来,它才使用了最近几个月(这就是在我开始为他们工作之前,他们一直在使用该软件来管理软件的版本控制)。
我最近将一个development
分支与我的本地master
分支合并,并推master
送到服务器。在将站点推送到服务器之前,我已经在本地开发机器上测试了该站点(使用Django / Python编写的站点),并且一切似乎都正常工作(包括已在development
分支上实现的错误修复)。
但是,在测试推送到服务器后所做的更改之后,我发现某些内容破坏了站点的一部分。因此,我commit
在服务器上签出了一个旧版本,现在的实时版本正在使用旧版本commit
,这意味着它处于“已分离头”状态,但是可以正常工作。
因此,我的本地master
分支当前是我已推送到服务器的错误修复版本(该版本在本地运行,但未在服务器上运行),但是由于我需要处理网站的其他方面,因此我想恢复到master
在将development
分支与bug修复合并到之前所做的备份master
,以便从代码的“最近工作”状态进行开发。
我在计算机上拥有的分支机构是:
master
(已development
合并到其中,从而破坏了其他功能)
masterBackup
(即master
合并之前的分支development
)
development
(这是修复了原始错误的分支,但现在其他问题已被打破)
masterBackup
从合并development
到master
破产以来,实际上是我目前正在工作的“主”分支master
。我想再次创建masterBackup
我的“主”分支,并且master
可以丢弃/删除其当前状态。我仍然有development
分支机构,因此可以调查为什么/如何破坏了站点并在master
重新合并之前将其修复。
我在如何从另一个分支完全替换git中的master分支时发现了问题?接受的答案表明我应该执行以下步骤:
git checkout masterBackup git merge -s ours master git checkout master git merge masterBackup
但是我找不到任何明确的命令来解释该命令的git merge -s ours
功能...这肯定是如何使我masterBackup
的master
分支再次成为分支吗?
该帖子中的命令不适合您。命令的结果是使masterBackup分支包含master分支中的所有更改。当然,这不是您想要的。
如果只希望masterBackup分支充当master分支,则可以通过以下方式对其进行重命名
git branch -m master master1 git branch -m masterBackup master
现在masterBackup是replace master分支。但是,如果要将本地master分支推送到远程master,则应使用git push -f origin master
。