git merge 远程仓库的一个疑惑
初学 git, 自己练习分支这块有一点疑惑, 如下
本地和服务器(假设服务器使用的是 github)的代码均一样,均存在两个分支, 设为master
和feature1
, 现在需要将feature1
和master
合并, 我有两种想法:
第一种: 在本地 merge 了以后 push 到远程, 比如这样
git checkout master
git merge feature1
git push origin master
第二种:
在 github 上操作使用pull request
合并分支, 然后本地 master 分支上使用git pull
将远程内容更新到本地
请问使用哪种做法比较好? 初学 git, 很多东西可能考虑不周全, 若能指点, 不胜感激!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
正常来说其实是第二种... 因为作为实际开发的情况下... 一般开发者是没有merge master的权限的...
我一般都是本地merge然后push到远程。毕竟你本地能跑的代码才能推送
第二种,理由和楼上的一样。一般是不能直接push到master的。
git fetch origin master + git merge origin/master
看情况吧, 如果是个人项目, 我更倾向于第一种, 有合并冲突, 可以直接在 IDE 里修改, 简单明了. 如果是公司项目, 一般就是第二种方式了, 本地开发的代码推到 Git 上, 然后发起合并请求.
本地将feature分支commit后,切换到master拉取最新,再切回feature分支,执行git rebase master,解决冲突后再发起merge request/pull request,然后由项目成员review后合并到master。如果及时review是不会有冲突的
不同分支,还是拉取下来合并吧,也就是采用第一种方式。虽然说第二种方式的 pull 合并不同分支与 pull 同一分支 + merge 近似相等。
关于 pull 多说一点,pull 一般只会用于相同分支,即同一分支,存在本地和远程两个,pull 默认会把本地和远程分支采用 merge 方式合并,你也可以把 pull 的默认合并方式设置成 rebase 方式。