繁体   English   中英

Git-本地主分支似乎已损坏

[英]Git- local master branch appears to be broken

我正在使用Git管理我的版本控制的Python / Django项目。

在实时服务器上,该网站当前可以正常运行,但是,我对本地副本中一个views的布局/显示方式进行了一些更改。

为此,当我的本地master分支与最新版本保持同步时,我从master创建了一个名为pipelineProject的新分支,并开始在该分支上工作。 pipelineProject上进行更改时,我在进行更改的过程中“中断”了该网站,并且不得不将该分支恢复为master状态几次。

现在,我已将pipelineProject分支设置为要正确执行更改的状态-我已运行git add -Agit commit -m 'message'以确保备份了我的工作pipelineProject分支。

但是,在备份pipelineProject ,我随后检出了master ,因为我显然想将更改与master合并,并且在合并更改之前,我尝试在master分支上的浏览器中加载我的网站-但由于某些原因,现在损坏...尽管网站已加载,但所有样式均已消失-并且页面仅显示页面中使用的HTML元素的列表(超链接,标题和代码中的一些变量名)

网站的实时版本仍与开始进行这些更改之前的工作状态相同,因此我尝试切换到本地master分支,并运行git pull origin master以使用以下副本更新本地master副本:当前正在服务器上运行。

当我这样做时,git显示一条消息:

已经是最新的

我不明白为什么会这样...如果我的本地管理员是最新的,那么为什么我可以在实时服务器上正确查看该网站,但是当我在本地服务器上查看该网站时,却无法不能正确显示...?

当我在pipelineProject分支上本地查看网站时,所有网站都可以正常运行(并且所做的更改将按预期显示),但是我不想将pipelineProject分支合并到本地master分支中,以防丢失更改我已经成功做到的。

即使live主机工作时,我的本地master为什么会损坏? 在将更改推送到实时服务器之前,如何解决此问题?

编辑

只是想一想:既然我的pipelineProject分支似乎工作正常,是否可以用这个替换我的本地主分支,然后将其推送到服务器?

当现场工作的人与现场工作的人保持最新时,我的本地主人会被打扰吗?

对于您的问题:

  1. 是的,您可以将主分支替换为pipelineProject分支。 首先,您应该使pipelineProject分支跟踪源/主git checkout pipelineProject ,使用git checkout pipelineProjectgit branch pipelineProject -u origin/master ,然后删除本地主分支git branch –D master ,最后将pipelineProject重命名为master git branch -m pipelineProject master
  2. 是的,有一个原因。 这是由于本地master分支在远程的origin / master分支之前引起的(可以使用git status进行检查),并且可以使用git log origin/master..master来查看在origin / master之前的提交。 因此,根据您的情况,您需要删除“断开”的提交,可以使用git reset --hard <commit id which you want go back> (如果您不愿意删除master分支)
  1. 确保您的本地和远程主服务器位于同一提交窗口中
    $ git checkout pipelineProject # go to your pipelineProject branch
    $ git branch -D master # delete the local master branch

    然后上网并复制主人的最后一次提交
    $ git checkout paste-commit-sha-here # go to the remote master's last commit
    $ git checkout -b master # create & checkout local master branch

  2. pipelineProject替换本地主服务器并推送到服务器

    $ git checkout pipelineProject # go to your pipelineProject branch
    $ git branch -D master # delete the local master branch
    $ git checkout -b master # create & checkout new local master
    $ git push -f origin master # push to server forcely

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM