git merge 远程仓库的一个疑惑

初学 git, 自己练习分支这块有一点疑惑, 如下

本地和服务器(假设服务器使用的是 github)的代码均一样,均存在两个分支, 设为masterfeature1, 现在需要将feature1master合并, 我有两种想法:

第一种: 在本地 merge 了以后 push 到远程, 比如这样

git checkout master
git merge feature1
git push origin master

第二种:
在 github 上操作使用pull request合并分支, 然后本地 master 分支上使用git pull将远程内容更新到本地

请问使用哪种做法比较好? 初学 git, 很多东西可能考虑不周全, 若能指点, 不胜感激!

阅读 8.4k
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 方式。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题