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