git push的详细使用

在使用git push之前,我们最起码要知道本地和远程的概念,以及他们的关系。本地分为工作目录、暂存区和本地仓库,远程可以有很多仓库,也叫作主机。我们只有将修改后的代码commit到本地仓库,才能使用push命令推送到远程指定的主机中。
在这里插入图片描述

格式 (很重要)

push命令的作用是将本地当前分支的代码推送到远程指定的分支上,在多人协作中,小组成员就能在远程主机中看到自己修改的代码了。命令的格式如下:

git push <远程主机名> <本地分支名>:<远程分支名>

牢记格式很重要,很多初学者没有添加后面的参数,使用git push也能完成推送功能,但其实省略参数只能在特定的环境中生效,恰巧你当时的环境正合适。如果换了分支或者远程主机,就会导致很麻烦的问题。命令格式也很好记,可以理解为,使用git push命令将<本地分支名>的代码推送到<远程主机名>中的<远程分支名>上。

  • <远程主机名> :指的是你想要推送到哪个远程主机中,在我们克隆一个项目的时候,git会自动帮我们把远程主机起名为origin,一般情况下是不会去修改这个名字的。我们可以使用remote命令来添加多个远程主机,那么什么时候会添加多态远程主机呢?感兴趣可以看这篇文章:还没有写
  • <本地分支名>:这个很好解释,就是你本地分支的名字,如果对git分支还不了解分支,可以看这篇文章:还没有写。可以使用命令git branch来查看本地都有哪些分支,结果如下图,意思是我本机一共有两个分支:master和dev,master分支前面加了*号,表示当前处于master分支。
    git branch
  • <远程分支名>:指的是远程主机中的分支名,如果远程主机没有这个分支,则会新创建一个。

常用写法

有几种很常见的push操作,在这里列出来

1. 正常写法

填写所有的参数,这么写比较清晰明了,不容易弄混,适合<本地分支名><远程分支名>不一样的情况。举个栗子:

git push origin dev:test

意思是将本地的dev分支上的代码推送到远程主机名为origintest的分支上。如果远程的test分支不存在,则会被创建,这也是一种创建远程分支的办法。

2.省略:<远程分支名>

如果本地分支名和远程分支名一样的情况下,可以省略:<远程分支名>。如果远程主机中不存在该分支,那么会被创建。我们就可以使用命令:

git push origin dev

来代替

git push origin dev:dev
3.省略<远程主机名>和:<远程分支名>

如果本地分支已经跟远程分支建立了追踪关系,那么可以省略<远程主机名>:<远程分支名>
使用git branch -vv命令,可以查看本地分支跟远程分支是否存在追踪关系,如下图所示,本地dev分支跟远程origin/dev分支存在追踪关系,本地master分支跟远程origin/master分支有追踪关系。
在这里插入图片描述
此时可以看到我们当前处于master分支,因此就可以使用命令:

git push origin 

来代替:

git push origin master:master

如果当前分支没有追踪关系的远程分支会出现什么结果呢?我们来创建一个新的分支,并将其设置为当前分支。
使用命令git checkout -b stt创建一个新的分支stt,参数-b的意思是将新创建的分支设置为当前分支。然后使用git push origin看能不能推送到远程。结果如下图:
在这里插入图片描述
我们发现出现一个fatel错误,提示说找不到上游的分支,意思就是远程没有与当前分支对应的追踪关系,需要用命令git push --set-upstream origin stt先建立关系才行。输入这条命令之后发现,git会将本地stt分支推送到了远程的stt分支上,并建立了两个的追踪关系。
在这里插入图片描述

4.省略<远程主机名> <本地分支名>:<远程分支名>

在之前的命令中,我们都会添加<远程主机名>来指定要推送到哪一台主机上,但如果连主机名都不想写,可以吗?当然可以,我们只需要保证本地仓库只跟一台远程主机有关联即可。其实我们在正常的开发中,远程主机确实只有一个,那就是我们克隆的远程项目的主机。如果不使用特殊的操作,根本用不着跟其他主机建立联系。
在这里插入图片描述
假如我们当前的分支是在dev下面,所以我们就可以通过命令

git push

来代替命令:

git push origin dev:dev

假如后来我们新增了一台或者多台远程主机,主机2、主机3、主机4…等等,那么在使用push命令的时候就必须要加上<远程主机名>这个参数了

以上就是所有关于git push命令的详解

小福利

海量编程资源:https://shimo.im/docs/0l3NVZX6l6tB7D3R/
承诺所有资源不收任何费用,没有任何套路!如果觉得有用希望可以点个赞+评论,感谢支持!

`git stash push` 命令用于将当前工作区的修改保存到一个临时区域中,方便之后再恢复这些修改。下面是 `git stash push` 的详细使用步骤: 1. 首先,进入你想要保存修改的项目目录中,确保你已经对项目进行了修改。 2. 执行 `git stash push` 命令,将当前工作区的修改保存到临时区域中。 ``` git stash push ``` 执行该命令后,Git会将当前工作区的所有修改保存到一个临时的stash中,并将工作区恢复到一个干净的状态,就好像你还没有修改过一样。 3. 如果你只想保存部分文件的修改,可以使用 `git stash push <path-to-file>` 命令。其中,`<path-to-file>`是指你想要保存的文件路径。 ``` git stash push <path-to-file> ``` 4. 如果你想要为这个stash添加一个标签,以便在恢复的时候更容易识别,可以使用 `-m` 选项,后跟标签名。 ``` git stash push -m "my stash" ``` 5. 如果你希望在保存stash时,也保存未跟踪的文件,可以使用 `-u` 选项。 ``` git stash push -u ``` 6. 如果你想要将修改保存到一个已存在的stash中,可以使用 `-q` 选项来关闭命令的输出,然后使用 `stash@{n}` 来指定stash的名字。 ``` git stash push -q stash@{1} ``` 7. 最后,如果你想要查看你已经保存的所有stash,可以使用 `git stash list` 命令。 ``` git stash list ``` 以上就是使用 `git stash push` 命令的详细步骤。需要注意的是,stash只会保存你还没有提交的修改,如果你已经提交了修改,那么这些修改是不会被保存到stash中的。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值