Git(三)

前记

这次说一下git里面远程相关的操作

git fetch

这个命令是把远程仓库的远程分支代码,拉到本地库的远程分支上,具体我们看看下面的图片

image.png

执行了git fetch之后,o/master更新了(这个是本地的远程分支),但是本地的master分支还没有更新,想要更新本地master 还需要执行git merge o/master

git pull

这个命令也是下拉代码,但是他会自动帮你合并本地的远程分支代码
git pull = git fetch + git merge o/master

git push

这个命令是把本地的修改,推送到远程库的对应的分支,这个命令也是值得说明的
这里主要说明git push参数相关的内容 git push 不带任何参数时的行为与 Git 的一个名为 push.default 的配置有关。它的默认值取决于你正使用的 Git 的版本,所以在推送之前最好检查一下这个配置。

git push说明1

我们在本地master分支推送,不加任何参数直接git push 是因为git知道本地master分支关联的远程仓库分支是哪个(下面有解释)

git push说明2

那要是不知道了,比如我自己本地创建一个分支修改了代码,直接git push 会怎么样,看下图

image.png

我创建了一个test分支,修改代码,直接git push 提交,他报如下的错,因为你没有指定关联,他不知道要push到远程的哪个分支上去,所以git在bash里面建议你带参数
git push origin source:target

source:表示本地分支

target:表示远程分支

因为你现在就在test 分支上面了,所以可以直接忽略source。

git push origin test 这句话的意思就是把本地的test分支,推送到远程库的test分支,但是远程库没有test,怎么办,他会帮你在远程库创建一个远程分支test进行关联,所以这也是创建远程分支的一种方法,(另一种方法是直接在git客户端如github创建,然后去关联,下面有讲解)

疑惑

为什么我在本地master分支直接git push,他会把代码推送到远程库的master分支了,难道就是因为master o/master 名字差不多么,真正原因如下

master 和 o/master 的关联关系就是由分支的“remote tracking”属性决定的。master 被设定为跟踪 o/master —— 这意味着为 master 分支指定了推送的目的地以及拉取后合并的目标。你可能想知道 master 分支上这个属性是怎么被设定的,你并没有用任何命令指定过这个属性呀!好吧, 当你克隆仓库的时候, Git 就自动帮你把这个属性设置好了。当你克隆时, Git 会为远程仓库中的每个分支在本地仓库中创建一个远程分支(比如 o/master)。然后再创建一个跟踪远程仓库中活动分支的本地分支,默认情况下这个本地分支会被命名为 master。

自己设置关联

上面的关联是git默认设置的,那么我们可以自己设置么,答案是可以的

git checkout -b develop origin/develop

这个命令就是创建一个本地develop分支,并且关联远程库的develop分支,那么这个分支就和远程的一样,这也是我们我们常见的拉取远程分支的方法,并且这是不会合并的

git branch -u origin/develop develop

这种方法也是创建一个develop分支,并且关联远程库的develop分支,同样是拉取远程分支的一种方式,并且不会合并

git fetch origin foo

同样的git fetch和git pull 也和上面的git push 一样,拥有参数,但是不同的是
git fetch origin target:source
参数意义反过来了,远程的在前面,本地的在后面,那么上面那句代码的意思是什么了看下图

image.png

他会把远程的foo分支代码,拉到本地的远程分支上,
假如本地没有远程仓库这个分支怎么办,同样的他也会在本地创建一个分支。

git fetch origin bar 他会创建一个本地远程分支o/bar,此时代码显示的还是master分支,但是你是可以切换到bar上面的
git checkout bar

虽然现在只有o/bar,没有bar分支,但是当你执行git checkout bar的时候,git看到了有o/bar分支,会自动帮你创建一个看的到的本地bar分支

image.png

如果你想一开始就能看得见,就得把两个参数一起写上去
git fetch origin bar:bar 这样就是创建bar分支

image.png

git pull origin target:source

git pull 和git fetch是一样的,但是有一个不同的是,他会帮你合并!合并!合并!

git pull origin develop:develop = git fetch origin develop:develop + git merge develop

他在本地创建一个develop, 并且会帮你把develop分支和当前分支合并,如果你是在master分支操作这个命令,那么那就会帮你把develop和master合并

注意

git pull origin develop = git fetch origin develop + git merge o/develop

当命令是一个参数的时候,是创建一个o/develop
但是相同的是还是会合并,所以网上说的无论是哪种拉取只要你用的是git pull 这个pull命令,都会帮你合并
所以拉取分支不合并的方法,除了上面两种外第三种是git fetch origin develop:develop 是fetch!!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,539评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,911评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,337评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,723评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,795评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,762评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,742评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,508评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,954评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,247评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,404评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,104评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,736评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,352评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,557评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,371评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,292评论 2 352

推荐阅读更多精彩内容

  • 1. 安装 Github 查看是否安装git: $ git config --global user.name "...
    Albert_Sun阅读 13,649评论 9 163
  • 1.GitHub 有什么用 学习优秀的开源项目开源社区一直有一句流行的话叫「不要重复发明轮子」,某种意义上正是因为...
    Clemente阅读 1,429评论 1 14
  • 多种多样的工作流使得在项目中实施Git时变得难以选择。这份教程提供了一个出发点,调查企业团队最常见的Git工作流。...
    JSErik阅读 4,401评论 2 8
  • Git 是目前最流行的分布式版本控制系统之一。 版本控制指的是,记录每次版本变更的内容和时间等细节,保留各版本之间...
    神齐阅读 1,412评论 0 7
  • 这篇博文是自己在学习git过程中的思考总结。本文仅仅代表个人的看法,如有不妥地方还请本文文末留言。 😊 原文链接g...
    Ming_Hu阅读 1,065评论 4 18