git config 设置自动创建同名远程分支

Eli*_*ock 15 git git-config

我曾经把 git 设置得很好,当我运行时它会自动推送到同名的远程分支git push,并在运行时自动拉取git pull

我试图向朋友展示如何做到这一点,并在此过程中设法破坏了我自己的配置。我怎样才能恢复我正在寻找的功能?我尝试了很多配置,但每个配置都有其问题。

我目前有这个~/.gitconfig

[push]
    default = current
[branch]
    autoSetupMerge = always
Run Code Online (Sandbox Code Playgroud)

但是当我在本地创建一个新分支,然后提交并推送时,它会显示“一切都是最新的”。如果我随后运行git push origin <branch_name>它,它确实会推动更改。

这些设置似乎也不起作用:

[push]
    default = matching
[branch]
    autoSetupMerge = always
Run Code Online (Sandbox Code Playgroud)

Ale*_*ara 19

您可以对其进行配置,git config --global push.default current 使其推送当前分支以更新同名分支。

但是,在 2022 年,如果 git 版本为git >= 2.37.0,您可以在 git 配置中指定这一点git config --global --add --bool push.autoSetupRemote true,这样可以在设置上游跟踪的同时实现相同的效果。

  • nitpick 上的拼写错误:“git config --global push.autoSetupRemote true”,删除了“push”前面多余的“-” (6认同)
  • nitpick: `git config --global -push.autoSetupRemote true` 应该足够了(但是+1) (2认同)

Raj*_*ani 15

您可以使用以下命令指示 git 默认创建同名远程分支(我使用的是全局级别,您可以根据您的需求决定级别:

git config --global push.default current
Run Code Online (Sandbox Code Playgroud)

来源

您可以使用 -u 选项首次推送新分支,它将有助于跟踪新分支并有助于拉取更改。如果第一次推送时没有使用 -u ,以后推送时也可以使用它。基本上,跟踪将在使用 -u 选项推送后开始。

git push -u
Run Code Online (Sandbox Code Playgroud)

无需为新分支和推送更改指定来源和分支名称。