目录
git中push -u是什么意思
首页 开发工具 git git中push -u是什么意思

git中push -u是什么意思

Jul 01, 2022 am 10:36 AM
git

在git中,“push -u”的意思是将本地的分支版本上传到远程合并,并且记录push到远程分支的默认值;当添加“-u”参数时,表示下次继续push的这个远端分支的时候推送命令就可以简写成“git push”。

git中push -u是什么意思

本文操作环境:Windows10系统、Git2.30.0版、Dell G3电脑。

git中push -u是什么意思

git push 命令用于从将本地的分支版本上传到远程并合并。

一般将本地仓库推送到远程仓库的时候一般会使用 git push 命令。而作为新手,在网上看到一些教程有的会在 git push 的时候带上一个 -u 参数,而有的则没有。而推送的实际结果没有什么区别。就很好奇 -u 参数的作用到底是什么?

搜索了一番,综合了一些大家的说明和解析,总结记录一下。

参数解析:

首先对于 git push,有这样一段描述:

-u

–set-upstream

For every branch that is up to date or successfully pushed, add upstream (tracking) reference, used by argument-less git-pull(1) and other commands. For more information, see branch.<name>.merge in git-config(1).

在这个描述中,可以看到 -u 参数与下面这个变量相关

branch.<name>.merge

branch.<name>.merge与branch..remote一起定义给定分支的上游分支(upstream)。它告诉git fetch/git pull要合并哪个分支,还可以影响git push.

而upstream是指其他人将从中获取的主要存储库,例如您的GitHub存储库。-u选项自动为您设置上游,将您的仓库链接到一个中央仓库。这样,将来Git会“知道”您要推送到的位置以及您要从哪里提取的信息,因此您可以使用git pull或git push不使用参数。 

当您git pull从分支进行操作而未指定源远程或分支时,git会查看 branch.<name>.merge 设置以了解从何处提取。而正是git push -u 命令为您要推送的分支设置此信息。

至此,简单来说,带上-u 参数其实就相当于记录了push到远端分支的默认值,这样当下次我们还想要继续push的这个远端分支的时候推送命令就可以简写成git push即可。

示例展示:

下面展示一个示例来说明这一点。

andy@AndyMacBookPro:/usr/local/github/andy/php-examples$ git pull
There is no tracking information for the current branch.
Please specify which branch you want to merge with.
See git-pull(1) for details.
git pull <remote> <branch>
If you wish to set tracking information for this branch you can do so with:
git branch --set-upstream-to=origin/<branch> test
登录后复制

这个就是如果你之前未使用 -u 参数,后面省略了想要pull的分支参数而产生的结果。pull 因为没有track for the current branch. 所以他不知道你要从哪里pull,所以这也就是 -u 参数的意义,指定trach branch。

其实你可以在指定完-u之后,去.git/config看GIT配置文件,可以看到下面有了branch "test"的分支的记录:

[branch "master"] 
 remote = origin
merge = refs/heads/master 
[branch "test"]
remote = origin
merge = refs/heads/test
登录后复制

这样git才能知道当前test下的remote和merge的信息,如果你在git push的时候没有带入-u参数,那么config中就不会有branch "test"这一项。

 [branch "master"]
    remote = origin
    merge = refs/heads/master
登录后复制

配置说明,这告诉Git 2件事:

当您在master分支上时,默认的遥控器是origin。

在git pullmaster分支上使用时(未指定任何远程和分支),请使用默认的remote(源)并合并来自remote master分支的更改。

配置修改

您可以手动去.git/config修改GIT配置文件内容,也可以使用命令行设置这些选项。

 $ git config branch.master.remote origin
 $ git config branch.master.merge refs/heads/master
登录后复制

如果使用命令进行配置,它将有一定的纠错能力。比如您键入了一个不存在的分支或者您没有执行git remote add 操作。在较新的git中,希望您使用 git branch --set-upstream-to=origin/master master

其实,执行添加了-u 参数的命令 git push -u origin master就相当于是执行了

git push origin master 和

git branch --set-upstream master origin/master。

所以,在进行推送代码到远端分支,且之后希望持续向该远程分支推送,则可以在推送命令中添加 -u 参数,简化之后的推送命令输入。

推荐学习:《Git教程

以上是git中push -u是什么意思的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

git怎么下载项目到本地 git怎么下载项目到本地 Apr 17, 2025 pm 04:36 PM

要通过 Git 下载项目到本地,请按以下步骤操作:安装 Git。导航到项目目录。使用以下命令克隆远程存储库:git clone https://github.com/username/repository-name.git

git怎么更新代码 git怎么更新代码 Apr 17, 2025 pm 04:45 PM

更新 git 代码的步骤:检出代码:git clone https://github.com/username/repo.git获取最新更改:git fetch合并更改:git merge origin/master推送更改(可选):git push origin master

git怎么合并代码 git怎么合并代码 Apr 17, 2025 pm 04:39 PM

Git 代码合并过程:拉取最新更改以避免冲突。切换到要合并的分支。发起合并,指定要合并的分支。解决合并冲突(如有)。暂存和提交合并,提供提交消息。

git下载不动怎么办 git下载不动怎么办 Apr 17, 2025 pm 04:54 PM

解决 Git 下载速度慢时可采取以下步骤:检查网络连接,尝试切换连接方式。优化 Git 配置:增加 POST 缓冲区大小(git config --global http.postBuffer 524288000)、降低低速限制(git config --global http.lowSpeedLimit 1000)。使用 Git 代理(如 git-proxy 或 git-lfs-proxy)。尝试使用不同的 Git 客户端(如 Sourcetree 或 Github Desktop)。检查防火

git commit怎么用 git commit怎么用 Apr 17, 2025 pm 03:57 PM

Git Commit 是一种命令,将文件变更记录到 Git 存储库中,以保存项目当前状态的快照。使用方法如下:添加变更到暂存区域编写简洁且信息丰富的提交消息保存并退出提交消息以完成提交可选:为提交添加签名使用 git log 查看提交内容

如何解决PHP项目中的高效搜索问题?Typesense助你实现! 如何解决PHP项目中的高效搜索问题?Typesense助你实现! Apr 17, 2025 pm 08:15 PM

在开发一个电商网站时,我遇到了一个棘手的问题:如何在大量商品数据中实现高效的搜索功能?传统的数据库搜索效率低下,用户体验不佳。经过一番研究,我发现了Typesense这个搜索引擎,并通过其官方PHP客户端typesense/typesense-php解决了这个问题,大大提升了搜索性能。

git怎么更新本地代码 git怎么更新本地代码 Apr 17, 2025 pm 04:48 PM

如何更新本地 Git 代码?用 git fetch 从远程仓库拉取最新更改。用 git merge origin/&lt;远程分支名称&gt; 将远程变更合并到本地分支。解决因合并产生的冲突。用 git commit -m "Merge branch &lt;远程分支名称&gt;" 提交合并更改,应用更新。

git怎么删除仓库 git怎么删除仓库 Apr 17, 2025 pm 04:03 PM

要删除 Git 仓库,请执行以下步骤:确认要删除的仓库。本地删除仓库:使用 rm -rf 命令删除其文件夹。远程删除仓库:导航到仓库设置,找到“删除仓库”选项,确认操作。

See all articles