欢迎!从2017年开始,将慢慢的不在xmind上写总结了,全部转到博客中!这里将不再随便写写,将继承在xmind的精神,继续前行!!!

git使用系列 4.1 git 实践(一) pull的使用

git pull来从远程仓库"同步"代码,通常有三种方式;

git pull origin <remote_branch>:<local_branch>
git pull origin <remote_branch>
git pull

1.git pull origin <remote_branch>:<local_branch>

这种用法写起来最为繁琐,但最好理解:

场景:当本地的当前分支不是local_branch;
作用:将远程分支拉取到指定本地分支;

例如:当前分支是dev,但是你想把远程master”同步”到本地master,但又不想使checkout切换到master分支;
这时你就可以使用 git pull origin master:master

2.git pull origin <remote_branch>

场景:在当前分支上进行同步操作;
作用:将指定远程分支同步到当前本地分支;

3.git pull

场景:本地分支已经和想要拉取的分支建立了“关联”关系;
作用:拉取所有远程分支的新版本"坐标",并同步当前分支的本地代码(具体根据关联分支而定)

 

 上面是简单的理论:实际情况中 git 多人同时修改一个文件后的合并

一、git fetch 和 git pull 的区别

1、    git fetch <远程主机名> <远程分支名>:<本地分支名>

         git fetch origin master :temp             //将远程仓库origin的master分支的

        git diff temp                    //比较本地代码和远程代码的区别    

        git merge temp               // 合并temp分支到本地的master分支

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

                             //取回远程分支的更新,并直接与本地分支合并

区别:git  pull 可以看作是git fetch 和 git merge 两个步骤的集合。

 

二、多人协作,当他人修改文件后,后提交的必须先pull在合并,并且在合并的时候会出现冲突

    1、当远程仓库的代码更新后,我们在push提交时会出现提交不了的情况,这时我们必须pull更新后的远程代码。但是在远程代码合并本地代码时发生CONFLICT冲突,这时需要我们手动解决冲突,最后再push提交到远程代码。

    2、解决方法  :

          先 git add 和 commit 添加一下本地分支的代码

             git checkout  branch          //选择分支

            git fetch origin master       //拉取远程更新代码(只拉取不合并),这里不能git pull (合并有冲突)

            git rebase  origin/master   //查看conflict ,手动修改冲突 

            git add  .

            git rebase --continue       //add 后不需要git commit

            git push origin

  

 
 

 

666

 

posted @ 2019-09-05 18:01  拐进web的奋斗者  阅读(630)  评论(0编辑  收藏  举报