18

[教程] 推送 Git 新分支更轻松

Calm
·2小时前

向远程仓库推送代码,使用 git push命令。

它会把本地的当前分支推送到远程对应的分支。若无特别设置,本地和远程分支同名。

image.png

不过,如果你在本地创建了新分支,直接执行 git push,它会拒绝你的要求。

image.png

新分支只在你本地有,远程还没有。Git 不知道你想把代码推给哪个分支,所以拒绝。

Git 心地善良,虽然拒绝了你,但也给了一个解决方案:使用 --set-upstream 选项,把远程分支名明确指定。

比如:git push --set-upstream origin feature-foobar

不过,这个命令有点儿长,敲起来麻烦,还容易出错。如果你有幸使用 macOS,并且安装了 oh-my-zsh,可以执行它提供的别名 gpsup,这是对 git push --set-upstream 命令的简单封装。

image.png

上面的 git_current_branchoh-my-zsh 封装的一个函数,用于获取当前分支名称。

image.png

但不是每个人都用 macOS,难道使用 Windows 系统的你,只能傻傻手敲冗长的 –set-upstream 选项吗?

好消息是,Git 早已提供了一个 push.autoSetupRemote 选项,当你把它设为 true,就可以自动设定远程分支。也就是说,如果远程分支不存在,会自动创建和本地分支同名的远程分支,然后再推送代码。

git config --global push.autoSetupRemote true

image.png

设置成功后,你再执行 git push,将一切顺利。

不仅如此,以后所有的新分支推送到远程时,执行 git push 即可,Git 不会有任何怨言。

push.autoSetupRemote 是在 Git 2.37.0 引入的,发布于 2022 年 6 月,可以放心使用。

Vue.Ge 全栈开发交流平台

回复讨论
1

登录后可参与回复讨论。

文明发言,理性讨论
Codeman
·2小时前