遇一山,过一山,处处有风景;只要勇敢向前,一路尽是繁花盛开。 | (点击查看→)【测试干货】python/java自动化、持续集成、性能、测开、简历、笔试面试等

Git必知必会基础(16):git clone、git pull、git fetch、git push的区别

 

本系列汇总,请查看这里https://www.cnblogs.com/uncleyong/p/10854115.html

git clone

没有本地仓库,将远端的整个项目下载到本地

 

git pull

本地已经有项目但不是最新(比如你的同事往远处仓库提交了代码),从远程获取最新版本并merge到本地,也就是将远程指定分支拉取到本地指定分支上

命令格式:

git pull [远程仓库名] [远程分支名]:[本地分支名]

本地分支是当前分支,本地分支名可以省略:

git pull [远程仓库名] [远程分支名]

git pull = git fetch + git merge

示例:git pull origin dev = git fetch origin dev + git merge fetch_head,fetch_head就是origin/dev

 

git pull --rebase

本地已经有项目但不是最新(比如你的同事往远处仓库提交了代码),使远程库和本地库同步

git pull --rebase = git fetch + git rebase

--rebase的作用是取消掉本地库中之前的(也就是共同节点之后的提交)commit,并把他们接到更新后的版本库之中
示例:git pull --rebase origin master
 

git fetch

本地已经有项目但不是最新(比如你的同事往远处仓库提交了代码),使本地库和远程库同步,不会和本地分支自动merge,比git pull安全一些

先git fetch,然后git merge将远程的变更合并到本地仓库

一般使用步骤是:

1、将远程仓库的master分支下载到本地当前branch中
git fetch orgin master

2、比较本地的master分支和origin/master分支的差异
git log -p master  ..origin/master

3、进行合并
git merge origin/master

 

另外:git fetch origin master:tmp,如果tmp分支在本地不存在会创建

 

git push

将本地当前分支推送到远程指定分支上

命令格式:

git push origin <本地分支名>:<远程分支名>
  
将本地当前分支推送到与本地当前分支同名的远程分支上,远程分支名可以省略:

git push origin <本地分支名>

 

另外,将本地分支与远程同名分支相关联:git push --set-upstream origin <本地分支名> ,或者 git push -u origin <本地分支名>

 

补充:

1、分支顺序写法是<来源地>:<目的地>,所以git pull是<远程分支>:<本地分支>,而git push是<本地分支>:<远程分支>

2、无论是pull还是pull --rebase,或者是push,都是正对commit后的数据,修改但未提交到暂存区,或者已提交到暂存区但是没有commit,都是没法pull,也没法push的。
 
 
 
 
posted @ 2024-01-16 21:17  全栈测试笔记  阅读(103)  评论(0编辑  收藏  举报
浏览器标题切换
浏览器标题切换end