美文网首页Git
git fetch & pull & push

git fetch & pull & push

作者: 晓风残月1994 | 来源:发表于2020-03-25 11:08 被阅读0次
    image

    简单来说,git pull = git fetch + git merge,分开来执行,以便将远程内容拉取到本地后,检查满意了,再 merge 到本地分支。

    1. git fetch

    $ git fetch <远程主机名> //这个命令将某个远程主机的更新全部取回本地
    $ git fetch origin master // 拉取远程主机 master 分支上的最新内容
    

    取回更新后会返回一个 FETCH_HEAD,代表了某个分支在远程的最新状态。

    $ git log -p FETCH_HEAD // 查看刚才拉的东西
    $ get merge FETCH_HEAD // 满意了再合并到当前所在分支
    

    2. git pull

    git pull 的过程可以理解为:

    git fetch origin master // master 分支仅为举例
    get merge FETCH_HEAD 
    

    即将远程主机的某个分支的更新取回,并与本地指定的分支合并,完整格式可表示为:

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

    但平时好像都是直接粗暴地用了简写,直接 git pull 也能行,那是因为在最初的时候,git 本地新建一个分支后,必须要做远程分支关联。如果没有关联, git 会提示你显式地添加关联,关联目的是如果在本地分支下操作 git pull 和 git push 时不需要再次指定远程分支。

    image.png

    git 查看远程主机详细配置信息,非常详细地记录了 git pull 和 git push 时的策略:

    git remote show origin
    
    1
    2

    关联的不满意?之前不小心关联错了?可以修改关联:

    $ git branch --set-upstream-to origin/分支名 // 不仅可以和远程分支关联也可以和本地分支关联,具体有需求时再说
    // Branch 'test-branch' set up to track remote branch 'dev' from 'origin'.
    

    之后可以通过如下方式,查看是否更改成功:

    git branch -vv
    git remote show origin
    cat .git/config
    git branch -a // 查看本地和远程的所有分支
    

    3. git push

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

    注意:以上格式中,如果单独省略本地分支名,相当于推送空的分支到远程分支,所以会删除远程分支!


    参考文章:

    1. git fetch & pull详解
    2. git pull 默认拉取远端其他分支
    3. GIT如何查看本地分支与远程分支的关联配置(git branch --set-upstream)

    相关文章

      网友评论

        本文标题:git fetch & pull & push

        本文链接:https://www.haomeiwen.com/subject/btctuhtx.html