使 "git push origin" 而不是 "git push origin <branch>" 成为可能,而不必为它一次性准备每个分支

Making it possible to do "git push origin" instead of "git push origin <branch>", without having to one-time prepare each branch for it

我只想使用:

git push

或最多:

git push origin

而不是必须首先使用 git branch --list 检查哪个是活动分支,然后键入:

git push origin <branch>

Here and here 我已经看到,如果我这样做一次:

git push -u origin <branch>

然后从那时起我可以只使用 git push 那个分支。但是,我不想为每个分支执行此 "setup" 步骤,因为这是额外的工作,我也可能会忘记这样做。

为什么这个"setup"步骤是必要的,我可以避免吗?

此外,如果我对尚不存在的分支(既不在我的 PC 上也不在服务器上)执行 "setup" 步骤 (push -u),是否不需要先git checkout -b <branch>

相关 post: 几乎相同的问题已被 posted here 但它没有要求做的方法去掉需求,它只问为什么有需求。

您可能不使用多个遥控器,因此您似乎没有必要指定要使用哪个遥控器。

但是,当使用分叉方案时(在 GitHub 或 BitBucket 上很常见),您通常会使用两个遥控器,originupstream(名称可能不同),并且您需要为每个分支指定它所属的远程(即使它通常是 origin)。

也可以让本地分支的名称与远程分支的名称不同,但我还在等待满足这样的需求。

看看https://git-scm.com/docs/git-config#git-config-pushdefault

设置 push.default=current 将允许您使用 git checkout -b ... 创建一个新分支,然后只需 git push 在您的远程仓库上创建一个匹配的分支。如果您有多个遥控器,那么我认为您需要指定一个,例如git push origin.

你可以继续你推的方式。

  1. 推送活动分支: git pushgit push origin
  2. 推送所有分支: git push --all

您也可以不设置步骤push -u。此步骤仅创建本地分支与远程分支(或我们称为远程跟踪分支)之间的关系。设置upstream后,可以通过git branch -vv找到关系。但它不会影响你推动的方式。

当你想推送一个新创建的分支时,不需要切换到该分支。您可以直接使用 git push origin branchgit push -u origin branch.