Git常用命令pull和push
1、fetch
从远程获取代码库。
# 会将所有远程分支都拉到本地
# 并不会合并代码
$ git fetch
# 下载远程仓库的所有变动
$ git fetch remote
$ git fetch origin
# 指定拉取远程remote的branch分支到本地
$ git fetch remote branch
$ git fetch origin develop
# 获取所有原创分支并清除服务器上已删掉的分支
# 删掉远程dev分支,此时本地版本库中的数据快照仍然有dev分支
# 该命令会与远程库进行一次同步,最终清理掉版本库中的dev分支,但本地工作区中的dev分支并不会删除
$ git fetch --prune
2、pull
pull 从远程获取代码并合并本地的版本。
# 第一次和远程关联上之后,在提交之前要先pull一下远程的更新才行
# 拉取所有远程分支到本地仓库中
# git pull = git fetch + git merge
$ git pull
# 取回远程仓库的变化,并与本地分支合并
$ git pull <远程主机名> <远程分支名>:<本地分支名>
$ git pull origin master:branch1
如果远程分支是与当前分支合并,则冒号后面的部分可以省略:
$ git pull <远程主机名> <远程分支名>
$ git pull origin master
用 fetch 表示:
$ git fetch origin branchName
# 合并名为origin/master的分支到当前所在分支
$ git merge origin/branchName
获取远程仓库的变更:
# 获取远程服务器上的变更,并合并到你的工作目录
$ git pull repository
$ git pull https://gitee.com/zsx242030/um.git
3、push
从将本地的分支上传到远程并合并。
分支推送顺序的写法是 <本地分支>:<远程分支>。
3.1 推送分支
# 将本地分支推送到远程分支
# 如果远程没有这个分支,会新建一个同名的远程分支
# 如果省略远程分支名,则表示两者同名,即会产生一个和本地分支同名的远程分支
# 该命令可以理解为将<本地分支名>的代码推送到<远程主机名>中的<远程分支名>上
# <远程主机名>默认为origin
$ git push <远程主机名> <本地分支名>:<远程分支名>
该命令的几种用法:
第一种,所有的参数都有:
$ git push origin develop:master
将本地的 develop 分支上的代码推送到远程主机名为 origin 中 master 的分支上,如果远程的 master 分支不存
在,则会被创建,这也是一种创建远程分支的办法。
第二种,省略 <远程分支名>:
$ git push origin develop
如果本地分支名和远程分支名一样的情况下,可以省略 <远程分支名>。如果远程主机中不存在该分支,那么会被
创建。该命令等价于:
$ git push origin develop:develop
第三种,省略 <本地分支名> 和 <远程分支名>:
$ git push origin
如果本地分支已经跟远程分支建立了追踪关系,那么可以省略<远程主机名>和 <远程分支名>。
使用 git branch -vv 命令,可以查看本地分支跟远程分支是否存在追踪关系。
这种推送方式的具体操作:
$ git checkout -b branch1
$ git push --set-upstream origin branch1
Total 0 (delta 0), reused 0 (delta 0)
remote: Powered by GITEE.COM [GNK-6.4]
remote: Create a pull request for 'branch1' on Gitee by visiting:
remote: https://gitee.com/zsx242030/um/pull/new/zsx242030:branch1...zsx242030:master
To https://gitee.com/zsx242030/um.git
* [new branch] branch1 -> branch1
Branch branch1 set up to track remote branch branch1 from origin.
$ git push origin
$ git branch -vv
* branch1 40f466a [origin/branch1] develop | add test.txt
第四种,省略 <远程主机名>、<本地分支名> 和 <远程分支名>:
$ git push
只需要保证本地仓库只跟一台远程主机有关联即可。
如果当前分支与多个主机存在追踪关系,则可以使用 -u 选项指定一个默认主机,这样后面就可以不加任何参数使
用 git push。
$ git checkout -b branch2
$ git push --set-upstream origin branch2
Total 0 (delta 0), reused 0 (delta 0)
remote: Powered by GITEE.COM [GNK-6.4]
remote: Create a pull request for 'branch2' on Gitee by visiting:
remote: https://gitee.com/zsx242030/um/pull/new/zsx242030:branch2...zsx242030:master
To https://gitee.com/zsx242030/um.git
* [new branch] branch2 -> branch2
Branch branch2 set up to track remote branch branch2 from origin.
$ git push
$ git branch -vv
* branch2 40f466a [origin/branch2] develop | add test.txt
不带任何参数的 git push,默认只推送当前分支,这叫做 simple 方式。此外,还有一种 matching 方式,会推送
所有有对应的远程分支的本地分支。Git 2.0 版本之前,默认采用 matching 方法,现在改为默认采用 simple 方
式。如果要修改这个设置,可以采用 git config 命令。
$ git config --global push.default matching
# 或者
$ git config --global push.default simple
除非你将分支推送到远端仓库,不然该分支就是不为他人所见的。
# 强行推送当前本地分支到远程仓库,即使有冲突
$ git push <远程主机名> --force
$ git push --force origin
# 推送所有本地分支到远程仓库
$ git push <远程主机名> --all
$ git push --all origin
上面命令使用 –force 选项,结果导致在远程主机产生一个非直进式的合并(non-fast-forward merge)。除非你很
确定要这样做,否则应该尽量避免使用 –force 选项。
# 第一次推送是要加上-u,可以把本地的master和远程的master关联起来,方便以后的推送或者拉取
$ git push -u origin master
3.2 删除分支
# 删除远程分支
$ git push origin --delete <远程分支名>
$ git push origin --delete develop
# 如果省略本地分支名,则表示删除指定的远程分支
# 因为这等同于推送一个空的本地分支到远程分支
$ git push origin :<远程分支名>
$ git push origin :develop
3.3 推送tag
# 推送某个tag到远程
$ git push <远程主机名> tagname
# 推送所有tag到远程
$ git push <远程主机名> --tags
# 把所有tag推送到远程仓库
$ git push origin --tags
演示:文章来源:https://www.toymoban.com/news/detail-611637.html
# master分支创建tag
$ git tag -a v0.1 -m "version 0.1 released"
$ git tag
v0.1
$ git push origin v0.1
Counting objects: 1, done.
Writing objects: 100% (1/1), 163 bytes | 163.00 KiB/s, done.
Total 1 (delta 0), reused 0 (delta 0)
remote: Powered by GITEE.COM [GNK-6.4]
To https://gitee.com/zsx242030/um.git
* [new tag] v0.1 -> v0.1
3.4 删除tag
# 删除远程tag
# 删除的话先删除本地的tag,然后再删除远程的
$ git push origin :refs/tags/[tagName]
演示:文章来源地址https://www.toymoban.com/news/detail-611637.html
$ git tag -d v0.1
Deleted tag 'v0.1' (was 6b7bd2b)
$ git tag
$ git push origin :refs/tags/v0.1
remote: Powered by GITEE.COM [GNK-6.4]
To https://gitee.com/zsx242030/um.git
- [deleted] v0.1
到了这里,关于Git常用命令fetch和pull和push的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!