Len*_*onR 3 git branch head linode
我正在使用Linonde来托管我的git repos以及实际的站点文件.
git branch -r看起来像这样:
company/master
company/stage
origin/HEAD -> origin/master
origin/master
prod/master
Run Code Online (Sandbox Code Playgroud)
git branch看起来像这样:
master
stage
Run Code Online (Sandbox Code Playgroud)
我想我只是想让我的本地舞台分支指向我的公司/主人.当我这样做git push company stage它似乎更新我的服务器上的舞台头,但我想让它更新主头,这是我的网站似乎服务它的文件来自.或者我需要弄清楚如何将我的网站指向公司/舞台主管.
我试着删除我的分支并制作一个
git branch stage company/master
Run Code Online (Sandbox Code Playgroud)
因为我认为起点可能就是我所需要的.
在我尝试推送之后,我得到消息:
error: failed to push some refs to 'root@foo:~repos/project_name'
To Prevent you from losing history, non-fasst-forward updates were rejected
Merge the remote changes (e.g. 'git pull') before pushing again.)
Run Code Online (Sandbox Code Playgroud)
我试了一下,git pull但它说一切都是最新的,我在快进的帮助文档中找不到任何解决我的情况的东西.
首先,值得解释当你这样做时会发生什么:
git push company stage
Run Code Online (Sandbox Code Playgroud)
最后一个参数是一个真正的refspec,它定义了源ref和目标ref之间的映射 - 在你可能正在处理的简单情况下,这些"refs"是分支名称.如果:refspec中没有,那么假设您想要推送到同名的分支.所以,你运行的命令相当于:
git push company stage:stage
Run Code Online (Sandbox Code Playgroud)
相反,如果要更新存储库中的master分支company,则需要执行以下操作:
git push company stage:master
Run Code Online (Sandbox Code Playgroud)
继续,当您删除分支并重新创建它时:
git branch stage company/master
Run Code Online (Sandbox Code Playgroud)
...在您的git配置中创建条目,将您的本地分支stage与master存储库中的分支相关联company.¹这意味着如果你在分支机构stage,运行git pull应该做正确的事情,在这种情况下,将更新远程跟踪分支company/master,并将其合并stage.
不幸的是(并且令人困惑)这些配置选项(默认情况下)不影响git push我在其他地方详细描述的行为.你没有提到git push你当时使用的命令的形式,但你应该这样做:
git push company stage:master
Run Code Online (Sandbox Code Playgroud)
...如果你想更新master分支company与本地资源库stage分支.(如果您只是尝试git push company,那将尝试在本地存储库之间推送每个"匹配"分支company,其中"匹配"表示"本地和远程存在同名分支".您可以通过设置push.default配置选项来更改此行为到tracking.)
¹在早期版本的git中,您必须添加--track参数,但有一段时间是起始点是远程跟踪分支的默认值.
| 归档时间: |
|
| 查看次数: |
2951 次 |
| 最近记录: |