Git 如何配置项目以推送到相应的远程分支&x2B;

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

当我克隆我的项目时,我希望它已经被配置为只将对应的远程分支推送到我签出的任何本地分支

我有两个本地分支:develope和master,以及两个相应的remote:remotes/origin/develope和remotes/origin/master

我知道如果我签出开发并将“remote.origin.push”设置为“HEAD:refs/for/developer”,那么我的更改将转到正确的位置。但是如果我签出master,它仍然希望推到远程开发分支

  • 如何设置“remote.origin.push”以避免每次签出新分支时都重置它
  • 如何将此设置添加到项目中,以便在克隆时自动显示

  • 提前感谢。

    编辑以添加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上自动执行此操作:这些配置项不是存储库的一部分。您可以通过以下两种方式中的一种(或两种)接近目标:

    • 在(
      --global
      )git config文件中为您设置这些:然后它们将应用于所有存储库,而不仅仅是此存储库和克隆。这在某些情况下可能是可以接受的,但显然不是所有情况下都可以接受但是,您可能确实希望全局设置
      push.default
      ,将其设置为
      current
      上游
      ,或
      simple
      (请参阅文档)

    • 在要克隆的存储库中提供一个脚本,该脚本调用
      git config
      来设置所有这些设置。然后,您需要记住在每个新克隆之后运行脚本,但至少它是按存储库设置的