【问题标题】:Branch git for a side project分支 git 用于辅助项目
【发布时间】:2013-03-29 05:23:25
【问题描述】:

我是一个 git 新手,所以请原谅我缺乏知识,但我什至不确定要在 google 搜索什么问题。

我有一个大型项目,只是我正在本地开发并使用 git 推送到远程网络服务器。服务器有一个 post-receive 钩子,它复制文件以使用此命令提供服务:

GIT_WORK_TREE=/my/remote/webserver/base/directory git checkout -f

这几个月来一直运行良好。

现在,我想构建一个衍生产品并在我的网络服务器上运行新分支。我还希望能够在衍生分支和主分支之间来回切换并覆盖服务器的代码,这样我就可以只用一台服务器同时开发两个独立的网站。首先,我创建一个新的 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

【问题讨论】:

  • 为其他用户带来利益的完整解决方案。拥有两个分支后: 在远程:将您的接收后挂钩线更改为 GIT_WORK_TREE=/my/remote/webserver/base/directory git checkout -f spinoff 在本地:git checkout spinoff 进行任何小的更改,然后执行:git commit -a -m 'message' && git push -u origin spinoff 要切换回主分支,请重复所有方向替换 'spinoff ' 代表“主人”

标签: git git-post-receive


【解决方案1】:

git push origin master 正在更新消息,因为您正在尝试推送您尚未更改的分支 master。

你的钩子正在执行 git checkout -f,这意味着它检查了 HEAD。当您将衍生产品推送到您的存储库时,HEAD 没有更改(它指向主服务器),因此不会更新任何内容。

您需要更改您的钩子以查看正在推送的 refs,或者指定一个特定的分支作为将被检出的分支。

虽然 git 不太适合作为适当的部署工具,但请参阅 this 列表了解不同的技术。

【讨论】:

  • 这是我丢失的部分。我需要将我的 post-receive 钩子中的行更改为:GIT_WORK_TREE=/my/remote/webserver/base/directory git checkout -f sideproject 正如 Ikke 在他的链接中提到的那样,可能有更好的方法来做到这一点,但这是快速而肮脏的
【解决方案2】:

你的命令语法对我来说似乎有点不对劲。

这会将与远程分支匹配的所有本地分支推送到服务器。

git push origin

这会将您的本地衍生分支推送到远程,并使您的本地分支跟踪远程。

git push -u origin spinoff

这将设置本地分支衍生以跟踪远程分支衍生(如果您执行了上一个命令,则不需要)。

git branch -u origin spinoff

【讨论】:

  • 语法已关闭,因为我目前使用 git 1.7.*。我尝试了您的建议,但编辑后的文件仍未复制到网络服务器上。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-21
  • 2020-08-23
  • 2015-12-09
  • 1970-01-01
  • 1970-01-01
  • 2013-01-07
相关资源
最近更新 更多