git命令: 拉取他人分支,合并到自己分支

如果没冲突的话,拉取代码就两步,一般就两步

git fetch 
git pull origin <远程分支>

git fetch // 同步远程仓库和本地仓库(如果fetch之前,别人的代码还在远端,本地还没有,所以不能merge合并代码)

git merge origin/[name]// ----将名称为[name]的分支与当前分支合并,
// merge 分支前面加上origin
// 除非你是切换到他人那个分支上,再pull,pull后再merge就不用加origin了

Auto-merging test.xcodeproj/project.pbxproj
CONFLICT (content): Merge conflict in test.xcodeproj/project.pbxproj
The stash entry is kept in case you need it again.

提示:先把本地你的代码commit了之后,再merge。
或者stash暂存一下,merge后再stash pop回来:
git stash save '新添加的内容标签'

  git stash save '内容' // 缓存并标注注释
  git stash show // 展示修改过的文件
  git stash list // 查看缓存列表
  git stash apply index // 释放缓存列表
  git stash drop stash@{number} // 删除指定的缓存
  git stash drop // 删除整个stash的缓存
  git stash clear // 删除所有的stash缓存
  git stash list // 展示缓存的列表

git merge origin/[他人的远程分支]

git stash pop修改冲突之后,在这行命令
vim 或command+选中目录,或open .打开当前目录,或者open test.xcodeproj/project.pbxproj打开冲突文件,修改。“<<<<<”、“>>>>>”、“=====”冲突位置。

因为你刚才stash了,stash pop回来时又遇到冲突了,
所以你的stash list中还能看到你刚才stash的内容。
如果stash pop后没有什么问题就会自动从你的stash list中删除

(不修改的话,直接git reset --hard,把stash的reset调,这个命令慎重使用,因为会把你工作区的内容全删掉,再也找不回来了,没commit的修改都会删除)

注意:

1、git fetchgit pull 的区别:
在执行git pull 之后,代码会自动merge到本地的分支中,而git fetch会忽略掉这个merge操作,因此简单的来说:

git pull = git fetch + git merge

2、git pullgit pull --rebase的区别:
git pull命令默认 包含了一个--merge参数,因此二者的区别就是mergerebase的区别。
3、merge
merge会创建一个新的commit,如果合并时遇到了冲突,需要解决冲突后,重新commit。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容