我最近更改了将代码托管在Github上的代码,并使用以下代码将其部署到了我的实时网站上:
git pull origin master
原点设置为https://github.com/myname/myproject
的地方。
一切正常,除了git status,它显示:
# 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
的回答:)
* 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)
答案 0 :(得分:1)
您的远程origin/master
分支没有更新,并且落后于本地master
分支。他们没有分歧,但是远程分支比本地分支落后74个。您有两种选择:
如果本地分支中的新更改是有意进行的,只需将其推送到origin/master
:
git push origin master
如果由于任何原因不希望更改,可以将master
分支重置为其远程状态。这意味着您用master
覆盖了origin/master
。 注意,您将丢失之前所做的所有74项更改:
git reset --hard origin/master