【问题标题】:Git: how to change active branch on remote repository?Git:如何更改远程存储库上的活动分支?
【发布时间】:2012-12-25 21:07:06
【问题描述】:

我在本地分支上处理了一些代码,然后使用以下命令将其推送到远程测试存储库:

git push origin fix_vouchers:fix_vouchers

我想更改该远程存储库上的活动分支,以便其他开发人员可以测试此代码。我可以在本地环境中执行此操作吗?

【问题讨论】:

标签: git git-branch git-remote


【解决方案1】:

如果远程存储库只是一个共享点,一个裸存储库,那么您最好只将具有代码的分支传达给其他开发人员。

在稍后的评论中,您暗示远程存储库是作为网站的结帐。您应该注意,即使您推送到当前活动的分支,推送也不会自动检查该分支的 HEAD。

如果你对远程机器没有任何 shell 访问权限,我认为不可能做你想做的事。如果你在那里有任何影响,你可以要求设置一个 post-receive 挂钩来检查新分支。

当然,如果您有 ssh 访问权限,只需

ssh remote.net "cd /path/to/repo; checkout fix_vouchers"

【讨论】:

    【解决方案2】:

    不,您不能使用本地命令在远程裸存储库上设置活动分支。

    活动分支是 HEAD 指向的分支。这是git的一些命令视图作为仓库默认分支的分支,比如git clone <url> <name>会默认签出默认分支。

    如果你有远程仓库的命令行访问权限,git symbolic-ref 命令可以用来设置哪个分支是默认的——参见:Setting the default git branch in a bare repository

    也就是说,一旦签出,任何特定分支都没有什么特别之处。任何分支都可以与其他开发人员共享,方法是让他们创建一个绑定到远程分支的分支,特别是使用git checkout -b <branch> 命令,其中是您要与他们共享的远程分支的名称。这将在其本地存储库上创建一个分支,该分支将针对远程分支进行跟踪。

    【讨论】:

      【解决方案3】:

      我的观点。 远程中没有所谓的活动分支。 分支是否处于活动状态由您决定。

      来到你的场景。 您可以将一个新分支推送到远程,称为 releaseCandidate 或 release 或 devBranch。 然后告诉大家把它用作测试/开发分支。

      但如果您的问题是其他开发人员正在使用某些特定脚本进行结帐,您可能需要更改该脚本。

      【讨论】:

      • 没错,但由于它是一个网站,我想在远程 ant 中检查一个特定的分支,而不是在本地机器上
      猜你喜欢
      • 2014-11-27
      • 1970-01-01
      • 2012-10-19
      • 2014-06-20
      • 2014-09-03
      • 2011-03-03
      • 2020-07-13
      • 2011-01-26
      相关资源
      最近更新 更多