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的。
__EOF__
本文作者:持之以恒(韧)
关于博主:擅长性能、全链路、自动化、企业级自动化持续集成(DevTestOps)、测开等
面试必备:项目实战(性能、自动化)、简历笔试,https://www.cnblogs.com/uncleyong/p/15777706.html
测试提升:从测试小白到高级测试修炼之路,https://www.cnblogs.com/uncleyong/p/10530261.html
欢迎分享:如果您觉得文章对您有帮助,欢迎转载、分享,也可以点击文章右下角【推荐】一下!
关于博主:擅长性能、全链路、自动化、企业级自动化持续集成(DevTestOps)、测开等
面试必备:项目实战(性能、自动化)、简历笔试,https://www.cnblogs.com/uncleyong/p/15777706.html
测试提升:从测试小白到高级测试修炼之路,https://www.cnblogs.com/uncleyong/p/10530261.html
欢迎分享:如果您觉得文章对您有帮助,欢迎转载、分享,也可以点击文章右下角【推荐】一下!