我是一个 git 新手,所以请原谅我缺乏知识,但我什至不确定要在谷歌搜索什么问题。
我有一个大型项目,只是我正在本地开发并使用 git 推送到远程网络服务器。服务器有一个 post-receive 钩子,它复制文件以使用此命令提供服务:
GIT_WORK_TREE=/my/remote/webserver/base/directory git checkout -f
这几个月来一直运行良好。
现在,我想构建一个衍生产品并在我的 webserver 上运行新分支。我还希望能够在衍生分支和主分支之间来回切换并覆盖服务器的代码,这样我就可以只用一台服务器同时开发两个独立的网站。首先,我创建一个新的 git 分支:
git checkout -b spinoff
我添加了一行并做了一个提交:
git commit -a -m 'test'
[spinoff 51f90e9] test
1 file changed, 1 insertion(+)
现在,我正在尝试推送到远程分支。这不起作用
git push origin master
(everything up to date)
此命令按预期推送,但不会通过 Web 服务器复制文件
git push origin spinoff
将其设置为推送给主人似乎没有帮助:
git branch --set-upstream spinoff origin/master
[由@Klas Mellbourn 编辑] 这是 git 1.7 的语法。. 如果你有 git 1.8. ,语法为:
git branch -u origin spinoff
我知道我在这里遗漏了一些重要的关键概念。我的猜测是,正如预期的那样,有两个远程存储库,但我需要设置其他东西从衍生存储库复制到网络服务器。
我想我可能需要编辑远程存储库中的 HEAD 文件?这目前包含:
ref: refs/heads/master