Git 如何配置项目以推送到相应的远程分支&x2B;
当我克隆我的项目时,我希望它已经被配置为只将对应的远程分支推送到我签出的任何本地分支 我有两个本地分支:develope和master,以及两个相应的remote:remotes/origin/develope和remotes/origin/master 我知道如果我签出开发并将“remote.origin.push”设置为“HEAD:refs/for/developer”,那么我的更改将转到正确的位置。但是如果我签出master,它仍然希望推到远程开发分支Git 如何配置项目以推送到相应的远程分支&x2B;,git,push,Git,Push,当我克隆我的项目时,我希望它已经被配置为只将对应的远程分支推送到我签出的任何本地分支 我有两个本地分支:develope和master,以及两个相应的remote:remotes/origin/develope和remotes/origin/master 我知道如果我签出开发并将“remote.origin.push”设置为“HEAD:refs/for/developer”,那么我的更改将转到正确的位置。但是如果我签出master,它仍然希望推到远程开发分支 如何设置“remote.origin
提前感谢。编辑以添加TL;DR key to answer:您可能正在寻找
push.default
,您应该将其git config--global
设置为下面列出的三种设置中最适合您的一种。请参阅粗体部分
根据,您可以将
branch.name.remote
设置为远程设备的名称,并将branch.name.pushremote
设置为覆盖其他默认值。您还可以使用push.default
来控制如果您只编写gitpush
,将推送哪些分支;和remote.pushdefault
(覆盖一个特定于分支的分支,但不覆盖另一个分支)。您还可以设置remote.remotename.push
以提供默认的ref-spec
诚然,这是一片混乱。但是设置确实存在,它处理第(1)部分(虽然不仅仅是remote.origin.push
,但您需要使用分支特定的设置)
第(2)部分无法在git clone上自动执行此操作:这些配置项不是存储库的一部分。您可以通过以下两种方式中的一种(或两种)接近目标:
- 在(
)git config文件中为您设置这些:然后它们将应用于所有存储库,而不仅仅是此存储库和克隆。这在某些情况下可能是可以接受的,但显然不是所有情况下都可以接受但是,您可能确实希望全局设置--global
,将其设置为push.default
、current
,或上游
(请参阅文档)simple
- 在要克隆的存储库中提供一个脚本,该脚本调用
来设置所有这些设置。然后,您需要记住在每个新克隆之后运行脚本,但至少它是按存储库设置的git config