Git push基础用法

本文详细介绍了gitpush命令的常见及扩展用法,包括推送本地分支到远程、删除远程分支、设置默认主机、推送所有本地分支、强制推送以及推送标签等操作。

在使用git commit命令将修改从暂存区提交到本地版本库后,只剩下最后一步将本地版本库的分支推送到远程服务器上对应的分支了,这时候就需要用到git push命令了。

git push的一般形式为 git push <远程主机名> <本地分支名>  <远程分支名> ,例如 git push origin master:refs/for/master ,即是将本地的master分支推送到远程主机origin上的对应master分支, origin 是远程主机名,第一个master是本地分支名,第二个master是远程分支名。

git push origin master

如果远程分支被省略,如上则表示将本地分支推送到与之存在追踪关系的远程分支(通常两者同名),如果该远程分支不存在,则会被新建

git push origin :refs/for/master 

如果省略本地分支名,则表示删除指定的远程分支,因为这等同于推送一个空的本地分支到远程分支,等同于 git push origin --delete master

git push origin

如果当前分支与远程分支存在追踪关系,则本地分支和远程分支都可以省略,将当前分支推送到origin主机的对应分支 

git push

如果当前分支只有一个远程分支,那么主机名都可以省略,形如 git push,可以使用git branch -r ,查看远程的分支名

git push 的其他命令

  这几个常见的用法已足以满足我们日常开发的使用了,还有几个扩展的用法,如下:

(1)git push -u origin master 如果当前分支与多个主机存在追踪关系,则可以使用 -u 参数指定一个默认主机,这样后面就可以不加任何参数使用git push,

不带任何参数的git push,默认只推送当前分支,这叫做simple方式,还有一种matching方式,会推送所有有对应的远程分支的本地分支, Git 2.0之前默认使用matching,现在改为simple方式。

如果想更改设置,可以使用git config命令。git config --global push.default matching OR git config --global push.default simple;可以使用git config -l 查看配置

(2) git push --all origin 当遇到这种情况就是不管是否存在对应的远程分支,将本地的所有分支都推送到远程主机,这时需要 -all 选项

(3) git push --force origin git push的时候需要本地先git pull更新到跟服务器版本一致,如果本地版本库比远程服务器上的低,那么一般会提示你git pull更新,如果一定要提交,那么可以使用这个命令。

(4) git push origin --tags //git push 的时候不会推送分支,如果一定要推送标签的话那么可以使用这个命令

关于 refs/for

refs/for 的意义在于我们提交代码到服务器之后是需要经过code review 之后才能进行merge的,而refs/heads 不需要

<think> 我们被要求解释git push用法,并在最后提出3-5个相关问题,且以“§§相关问题§§”开头,然后列出问题。 注意:必须使用中文回答。 首先,我们需要解释git push命令的基本用法和常用选项。 然后,根据解释的内容提出相关问题。 内容大纲: 1. 基本作用:将本地分支的更新推送到远程仓库。 2. 基本语法:git push <远程主机名> <本地分支名>:<远程分支名> 3. 常用选项: - -u 或 --set-upstream:设置默认上游分支,后续可直接使用git push - -f 或 --force:强制推送(覆盖远程分支) - --all:推送所有分支 - --tags:推送标签 4. 注意事项:例如强制推送的风险。 然后,根据这些内容提出3-5个相关问题。 注意:问题需要与git push相关,并能够引发进一步探讨。 </think> ### Git Push 相关用法详解 `git push` 是将本地代码推送到远程仓库的核心命令,以下是关键用法和场景: #### 1. **基础推送** - 推送当前分支到同名远程分支: ```bash git push origin <本地分支名> ``` 示例:`git push origin main` #### 2. **推送到不同命名的远程分支** - 本地分支推送到指定名称的远程分支: ```bash git push origin <本地分支>:<远程分支> ``` 示例:`git push origin dev:feature-login`(将本地 `dev` 推送到远程 `feature-login`) #### 3. **强制推送(慎用)** - 覆盖远程分支(常用于修复提交历史): ```bash git push --force origin <分支名> # 或 git push -f ``` **注意**:可能破坏他人代码,仅限私有分支使用。 #### 4. **推送所有分支** - 一次性推送所有本地分支到远程: ```bash git push --all origin ``` #### 5. **推送标签(Tags)** - 推送单个标签: ```bash git push origin v1.0.0 ``` - 推送所有标签: ```bash git push --tags origin ``` #### 6. **设置默认上游分支(简化后续推送)** - 首次推送时绑定远程分支: ```bash git push -u origin <分支名> ``` 之后只需执行 `git push` 即可。 #### 7. **删除远程分支** - 通过推送空分支实现删除: ```bash git push origin --delete <远程分支名> ``` #### 8. **特殊场景** - **推送到 Gerrit 代码审核**: ```bash git push origin HEAD:refs/for/main # 提交到 main 分支的审核队列 ``` - **推送到非默认远程仓库**: ```bash git push <自定义远程名> <分支名> # 如 git push backup-repo dev ``` #### ⚠️ 注意事项 - 推送前务必先执行 `git pull` 避免冲突。 - 强制推送 (`-f`) 可能覆盖他人工作,需团队协商使用。 - 使用 `git remote -v` 查看关联的远程仓库。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值