如何将Git的特定分支推送到服务器?

如何将Git的特定分支推送到服务器?,git,Git,我正在努力部署Django应用程序。 该应用程序基于Github OS项目构建。我将其作为主分支存储在本地 $ git branch * master customized - customized with local dev settings webfaction_customized - with production server settings 此项目的自定义项存储在两个单独的分支中 我的计划是在“customized”中本地执行自定义,然后将这些更改合并到

我正在努力部署Django应用程序。 该应用程序基于Github OS项目构建。我将其作为主分支存储在本地

$ git branch   
* master  
  customized - customized with local dev settings  
  webfaction_customized - with production server settings 
此项目的自定义项存储在两个单独的分支中

我的计划是在“customized”中本地执行自定义,然后将这些更改合并到“WebPartion\u customized”中

然后将这些更改推送到生产服务器上的裸存储库: 然后,我将在生产服务器上克隆这个裸存储库,更改克隆存储库中的设置并重新启动fcgi进程

第一个问题是,如果我试图将一个分支推送到不是主服务器的服务器,我就无法从裸存储库中克隆

因此,我尝试将主分支推送到服务器

git push webfaction_server master
但是现在我发现我的分支都没有被上传

是否有办法将特定分支推送到裸存储库并能够克隆该分支


我是否需要重新构造我的项目,以便主分支是我的自定义项,而Github项目将位于Github分支中?

您的push命令似乎是正确的,假设
webu server
是远程服务器的名称,而不仅仅是服务器地址。运行
git help remote
了解有关向多个远程设备推送或从多个远程设备拉送的更多信息。

您可能需要使用更新服务器信息。此工具将使用最近的提交哈希更新服务器上的头信息,更新旧分支并使新分支可见。特别是,它将更新git存储库中的info/refs文件。您将需要在服务器上运行此功能,因此,以下内容可能会很有用:

ssh webserver "cd /path/to/your/repository.git/ && git-update-server-info"

可能会触发该更新,可能是使用post commit hook,但尚未尝试该操作。

消息
警告:Remote HEAD指的是不存在的ref,无法签出。
只告诉您HEAD链接不存在,因此Git不知道要签出到本地工作目录的版本

production\u server
上的分支很可能被正确创建。只需执行一次git签出,然后开始黑客攻击

如果无法解决问题,请将
git branch-a
cat.git/config
的输出粘贴到此处,运行n个回购。

您只需执行以下操作:

git push origin webfaction_customized
git push origin localBranchName:remoteBranchName
其中,origin是您的远程名称,webu customized是您的自定义分支

因此,当您在主分支上工作时,您正在通过以下方式推动:

git push origin master
您只需执行以下操作:

git push origin webfaction_customized
git push origin localBranchName:remoteBranchName

是否有任何错误消息?您说过在推送非主分支时无法克隆裸存储库。错误是什么?推送主分支时是否有任何错误?是否将“WebU服务器”实际配置为远程?“git remote show”是怎么说的?这是您尝试克隆非主分支时出现的错误警告:remote HEAD指的是不存在的ref,无法签出。嗨,Egon。更新服务器信息实际上做什么?你能解释一下吗?我想,
gitbr
是@tashuhka fixed发出的特定命令,谢谢。不,对我来说,它只是“git分支”的别名。