git merge 和git pull 在使用过程中的区别?
场景1:
当我新建一个分支 git branch p1
然后 git checkout p1
然后 git merge p 注释:p是另一个分支
然后 git push origin p1
此操作相当于新建一个分支,然后将p分支复制一份到p1分支,并完成远程推送
场景2:
当我新建一个分支h,git checkout -b h 创建h分支并切换到h分支
然后 git pull origin p 拉取远程p分支的代码到h分支
然后 git push origin h 将h分支代码完成远程推送
两个操作看起来了差不多,但我发现操作一还是真正意义上将一个分支的代码完全复制到另一个新建的分支上,操作二会将dev最新的代码也推送到新建的分支,为什么会这样尼?
请问 git merge 和git pull 在使用过程中有什么区别和影响?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
首先你要理解几个概念:工作区,暂存区,版本库,远程仓库
git pull
的意思是直接从远程仓库的分支拉取最新代码并merge到当前分支比如你现在在
dev
分支,当你执行git pull origin master
的时候,那么就相当于你先把远程仓库的master
分支代码fetch
到本地,并执行git merge origin/master
(注意origin/master
其实在你本地了)。那么
git merge p
和git pull origin p
区别就是,如果你本地的p
分支超前你远程仓库的p
分支(也就是你本地p
分支有新代码,但是没有push
到远程), 那么你merge
后的当前分支中的代码将比远程仓库分支的代码超前。