我在本地分支上处理了一些代码,然后使用以下命令将其推送到远程测试存储库:
git push origin fix_vouchers:fix_vouchers
我想更改该远程存储库上的活动分支,以便其他开发人员可以测试此代码。我可以在本地环境中执行此操作吗?
我在本地分支上处理了一些代码,然后使用以下命令将其推送到远程测试存储库:
git push origin fix_vouchers:fix_vouchers
我想更改该远程存储库上的活动分支,以便其他开发人员可以测试此代码。我可以在本地环境中执行此操作吗?
不,您不能使用本地命令在远程裸存储库上设置活动分支。
活动分支是 HEAD 指向的分支。这是git的一些命令视图作为存储库的默认分支的分支,例如git clone <url> <name>
默认会检出默认分支。
如果您对远程存储库具有命令行访问权限,则该git symbolic-ref
命令可用于设置默认分支 - 请参阅:在裸存储库中设置默认 git 分支。
也就是说,一旦签出,任何特定分支都没有什么特别之处。任何分支都可以与其他开发人员共享,方法是让他们专门使用命令创建与远程分支相关联的分支git checkout -b <branch>
,其中是您要与他们共享的远程分支的名称。这将在其本地存储库上创建一个分支,该分支将针对远程分支进行跟踪。
如果远程存储库只是一个共享点,一个裸存储库,您最好将具有代码的分支传达给其他开发人员。
但是,在稍后的评论中,您暗示远程存储库是用作网站的结帐。您应该注意,即使您推送到当前活动的分支,推送也不会自动检查该分支的 HEAD。
如果您对远程机器没有任何 shell 访问权限,我认为不可能做您想做的事。如果你在那里有任何影响,你可以要求设置一个 post-receive 挂钩来检查新分支。
当然,如果您有 ssh 访问权限,只需
ssh remote.net "cd /path/to/repo; checkout fix_vouchers"
我的观点。远程中没有所谓的活动分支。由您决定分支是否处于活动状态。
来到你的场景。您可以将一个新分支推送到远程,称为 releaseCandidate 或 release 或 devBranch。然后告诉每个人将其用作测试/开发分支。
但是,如果您的问题就像其他开发人员正在使用某些特定的脚本来 checkout 一样,您可能需要更改该脚本。