git merge origin master和git merge master的区别(个人理解)
先说结论
git merge origin master
- 意思是当前的分支,进行合并,合并二个分支分别是远程分支master在本地的副本和本地分支的master
git merge master
- 当前分支于本地所处的master分支进行合并
- 还有就是
- git merge origin master是把origin merge 到 master 上的说法是错误的!!!!!!!!!!!!!
git merge实践出真理(放弃,待填坑)
准备工作
建立二个分支
stream
分支stream-qiuye
分支
三个分支分别在文件添加内容,并提交到远程(图片下面这行字忽略)
- 分支切换到main分支
前置需要了解
origin 并不是指得是远程的仓库,而是指得是远程仓库在本地的一个指针(这个指针有可能过时的)。当我们使用使用merge 的时候,我们进行合并的时候只是上一次fetch 从远程拿到的版本。不是远程仓库的最新版本
在另外一个人向main分支推送了新内容,本地没有更新,并且本地所处main分支情况下进行下面二个操作(为保证效果,)
get merge origin
get merge origin/main
尝试(放弃,待填坑)
- 分支都切换在main分支进行操作
- 主分支名称我改了默认的,改为了main
git merge origin main操作合并(放弃,待填坑)
git merge origin main
(另外一个人在main分支做了修改并提交到了远程服务器,并且本地还没有pull的情况)当然,你可以会出现这种情况
1 | merge: origin - not something we can merge |
git merge main操作合并(放弃,待填坑)
git merge main
那么再看看看push吧
提前总结
1 | #如果想在当前分支想要更新现在所处的分支或者上传到远程同名的分支 |
说明
- push写法你们可能像下面一样的写法
1 | # 这句话代码意思就是 |
- 不过其实这种写法不是完整的写法,而是一种简写,完整的写法应该是如下
1 | # 这句话代码意思就是 |
- 完整的语法示范如下,所以后面的远程分支名不写,则表示远程分支是与当前分支合并
1 | git push <远程主机名> <本地分支名>:<远程分支名> |
同时git pull也是和git push是差不多的,只不过调换了下顺序最后,因为pull是拉取分支,用户肯定想要是默认输入远程分支,而不是本地分支
1 | git pull <远程主机名> <远程分支名>:<本地分支名> |
之前看过有人说git merge的时候没有origin就是本地和远程
- 这老铁回答的没毛病,
origin
就代表的远程分支(可以这么认为),现在分支名称为feature-qiuye
为例 - 本地分支执行:
git merge origin/feature
- 就是代表本地分支和远程上的
feature
进行合并,也就是远程文件和本地文件合并,而非本地合并
- 就是代表本地分支和远程上的
- 本地分支执行:
git merge feature
- 就是代表本地分支和本地上的feature进行合并,也就是本地文件进行合并操作
搜索问题之git pull 更新非当前分支会连同当前分支一起合并
- 问
1 | 如果当前分支是 master,那么执行 git pull origin test:test 不仅会合并 test-->origin/test,还会合并当前分支 master-->origin/test |
- 答
1 | 我觉得主要是命令的语法有问题。 |
参考文章
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 梦洁小站-属于你我的小天地!
评论