Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git:无法解决主机和源/主机之间的差异_Git_Github - Fatal编程技术网

Git:无法解决主机和源/主机之间的差异

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

我最近将代码更改为托管在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 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)