0

0

git中push -u是什么意思

WBOY

WBOY

发布时间:2022-07-01 10:36:50

|

20543人浏览过

|

来源于php中文网

原创

在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..merge in git-config(1).

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

branch..merge

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

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

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

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

示例展示:

OpenArt
OpenArt

在线AI绘画艺术图片生成器工具

下载

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

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  
If you wish to set tracking information for this branch you can do so with:
git branch --set-upstream-to=origin/ 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教程

相关专题

更多
Sass和less的区别
Sass和less的区别

Sass和less的区别有语法差异、变量和混合器的定义方式、导入方式、运算符的支持、扩展性等。本专题为大家提供Sass和less相关的文章、下载、课程内容,供大家免费下载体验。

200

2023.10.12

自建git服务器
自建git服务器

git服务器是目前流行的分布式版本控制系统之一,可以让多人协同开发同一个项目。本专题为大家提供自建git服务器相关的各种文章、以及下载和课程。

639

2023.07.05

git和svn的区别
git和svn的区别

git和svn的区别:1、定义不同;2、模型类型不同;3、存储单元不同;4、是否拥有全局版本号;5、内容完整性不同;6、版本库不同;7、克隆目录速度不同;8、分支不同。php中文网为大家带来了git和svn的相关知识、以及相关文章等内容。

526

2023.07.06

git撤销提交的commit
git撤销提交的commit

Git是一个强大的版本控制系统,它提供了很多功能帮助开发人员有效地管理和控制代码的变更,本专题为大家提供git 撤销提交的commit相关的各种文章内容,供大家免费下载体验。

264

2023.07.24

git提交错误怎么撤回
git提交错误怎么撤回

git提交错误撤回的方法:git reset head^:撤回最后一次提交,恢复到提交前状态。git revert head:创建新提交,内容与之前提交相反。git reset :使用提交的 sha-1 哈希撤回指定提交。交互式舞台区:标记要撤回的特定更改,然后提交,排除已撤回更改。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

548

2024.04.09

git怎么对比两个版本的文件内容
git怎么对比两个版本的文件内容

要对比两个版本的 git 文件,请使用 git diff 命令:git diff 比较工作树和暂存区之间的差异。git diff 比较两个提交或标签之间的差异。git diff 输出显示差异块,其中 + 表示添加的行,- 表示删除的行, 表示修改的行。可使用 gitkraken、meld、beyond compare 等可视化工具更直观地查看差异。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

513

2024.04.09

高德地图升级方法汇总
高德地图升级方法汇总

本专题整合了高德地图升级相关教程,阅读专题下面的文章了解更多详细内容。

42

2026.01.16

全民K歌得高分教程大全
全民K歌得高分教程大全

本专题整合了全民K歌得高分技巧汇总,阅读专题下面的文章了解更多详细内容。

74

2026.01.16

C++ 单元测试与代码质量保障
C++ 单元测试与代码质量保障

本专题系统讲解 C++ 在单元测试与代码质量保障方面的实战方法,包括测试驱动开发理念、Google Test/Google Mock 的使用、测试用例设计、边界条件验证、持续集成中的自动化测试流程,以及常见代码质量问题的发现与修复。通过工程化示例,帮助开发者建立 可测试、可维护、高质量的 C++ 项目体系。

23

2026.01.16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Git 教程
Git 教程

共21课时 | 2.8万人学习

Git版本控制工具
Git版本控制工具

共8课时 | 1.5万人学习

Git中文开发手册
Git中文开发手册

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号