因为一直没有用过 Github (搜代码不算),之前在工作中在使用 GitLab 和 Azure DevOps 的时候,都是以分支到分支去 merge 代码的,Gitlab 是提交一个 MR Merge Request ,Azure DevOps 是也叫 PR ,流程大概就是每个人创建自己的分支,然后提 PR 过 review 把分支上的改动朝 master 上合并。
最近在看 github 的时候发现 github 上的 PR 好像和我之前接触的不太一样,如果我要参加一个开源项目,我需要先 fork 别人的仓库,而不是在仓库中创建新分支。PR 是仓库到仓库而不是分支到分支。我的理解正确吗?是所有的代码托管平台都差不多的合并逻辑还是只是 github 是这么干的,谢谢大家解答哈。
1
maichael 2022-01-11 14:49:15 +08:00
理解有问题,Gitlab 也支持仓库到仓库,Github 也当然支持分支到分支。只是由于权限问题(开源协作模式决定,大多数贡献代码的人没有权限在主仓创建分支),所有从会有 fork 新仓库这种方式。
|
2
ScepterZ 2022-01-11 14:50:42 +08:00
fork 方式是为了给别人的仓库做贡献,如果你是项目的一份子,也是直接在里边开分支的
|
3
dayeye2006199 2022-01-11 14:51:22 +08:00
也是分支到分支的。只不过是你 fork 出来的这个仓库的一个分支,到原仓库的分支;
因为你没有推送原仓库分支的权利,所以只能这么弄了;这个一般是给开源库贡献代码的姿势。 如果你们是自己组织内部用,那直接在原仓库里面开分支,推送原仓库,然后发起 PR 合并分支就可以了;没必要走这个模式。 |
4
thevita 2022-01-11 14:52:00 +08:00
我觉着,没啥差别啊, 都是 branch->branch (无非是 这俩 branch 是不是在一个 repo 里, 毕竟 git 是分布式的嘛)
|
5
idealhs OP 感谢楼上各位彦祖们,现在我明白了,就是一个开源和工作流程之间的区别。
|
6
unco020511 2022-01-11 23:36:12 +08:00
我之前和你有一样的疑问哈哈,楼上几乎都说清楚了
|