Git:无法解决主机和源/主机之间的差异
我最近将代码更改为托管在Github上,并使用以下方法将其部署到我的live站点:Git:无法解决主机和源/主机之间的差异,git,github,Git,Github,我最近将代码更改为托管在Github上,并使用以下方法将其部署到我的live站点: git pull origin master 其中原点设置为https://github.com/myname/myproject 一切正常,但git状态除外,它显示: # On branch master # Your branch is ahead of 'origin/master' by 74 commits. # (use "git push" to publish your local comm
git pull origin master
其中原点设置为https://github.com/myname/myproject
一切正常,但git状态除外,它显示:
# On branch master
# Your branch is ahead of 'origin/master' by 74 commits.
# (use "git push" to publish your local commits)
这是不正确的-我没有做出任何需要发布的承诺。如果我尝试使用git diff master origin/master
查看详细信息,我可以看到列出的大量文件。然而,我看不出这些变化来自何处:拿一个我很熟悉的文件并查看它的历史记录,我可以看到,git log
显示的版本与Github上的版本完全相同
我尝试过但不起作用的事情:
git fetch origin master:master
我希望这能把远程主机带到本地主机上。但这对地位没有影响
git reset --hard origin/master
这实际上破坏了我的网站,因为我检查了一些其他版本的代码。我不知道是哪个。我不得不做一个紧急的git-pull-origin-master
来恢复,这(谢天谢地)让系统恢复了工作,但让我的状态处于这种不稳定的状态
有人能帮忙吗
顺便说一句,我现在已经读到使用git pull
作为部署机制被认为是危险的,但我真的不明白为什么,而且我还没有找到一种在Github环境中明显优于它的方法-我愿意接受建议
(根据评论更新:以下是对git remote show origin的回复:)
您的远程
origin/master
分支未得到更新,并且落后于本地master
分支。他们没有分歧,但远程分支在本地分支后面。您有两个选择:
如果本地分支中的新更改是有意进行的,只需将它们推送到源代码/master
:
git推送原始主机
如果出于任何原因不希望更改,可以将主分支重置为其远程状态。这意味着您将使用origin/master
覆盖master
注意,您将丢失之前所做的所有74项更改:
git reset——硬源/主机
消息告诉您该怎么做。-使用“git push”发布您的本地委托,我不知道您为什么会有这个不可见的日志。然而,我知道,在更改环境(unix到dos的即时版本)时,有时我很难理解日志,因为它会干扰文件权限。也许这对你有帮助?:)也可以检查git remote show origin是否有任何异常?配置中的某些元素可能已关闭。使用git log
,检查您在生产服务器上看到的提交内容:git log--oneline--graph master origin/master
@evolutionxbox:所以我在origin/master中有正确的代码,在我的工作树中有正确的代码,系统告诉我的是本地主机中的错误代码。当然,我现在最不想做的事情就是推送被认为是错误的代码了吗?不过他们并没有分歧。本地分支似乎比原始分支早。事实上,我认为Deniz是对的:他们已经分化了,我不知道为什么。事情是这样的:origin/master和我签出的版本中的代码是相同的,并且是正确的。但是本地主机中的代码是错误的。所以我不敢推git,当我尝试“git reset--hard”时,我在签出的版本中得到了错误的代码版本。所以真相只存在于服务器上?然后删除本地工作文件夹,并从服务器上签出一个新的工作文件夹。马特:这是我的实时站点,如果没有用户干扰,我无法做到这一点,这是我试图避免的。但你是对的:如果没有别的办法,那就是我必须做的。我可以把停机时间缩短到几分钟。
* remote origin
Fetch URL: https://github.com/myname/myproject
Push URL: https://github.com/myname/myproject
HEAD branch: master
Remote branches:
fixes8p03 tracked
fixes8p07 tracked
master tracked
rfc2188 new (next fetch will store in remotes/origin)
Local branch configured for 'git pull':
master merges with remote master
Local ref configured for 'git push':
master pushes to master (up to date)