关于用 git 协作开发.

2015-03-08 05:32:26 +08:00
 MrGba2z
对用git协作开发的经历很少, 有些疑问想请教下大家.

我用过两种方式
一种是fork了之后, pull request, 然后repo owner来merge.

另一种是, (授权后)直接在原repo上开新的branch, 然后让负责merge的人merge到master.

这两种方式有啥优劣之处吗? 如何合理的选择呢? (假设我有权限在原repo开新branch)

我知道第二种的一个很大的缺点就是: 不算小绿点!!!!
3472 次点击
所在节点    git
9 条回复
yyfearth
2015-03-08 05:53:26 +08:00
我觉得 PR就是为了方便代码审查 相当于一个特殊的branch
另外 “原repo上开新的branch” 也可以创建PR 方便代码审查

如果你们是同一个组织的 同一个repo方便管理和维护
但是如果是开源社区 你不方便或者不允许直接参与repo的管理
或者需要维护自己的branch 那么久fork吧
yyfearth
2015-03-08 05:56:02 +08:00
我记得一开始PR的出现 就是为了fork之后任然可以像用branch一样合并
方便不同fork repos直接的代码交流
如果不正确的话 请指明
eriale
2015-03-08 09:15:25 +08:00
@yyfearth PR是不是就是加了一个code review,其他的跟使用同一个repo一样?
liubiantao
2015-03-08 09:27:29 +08:00
既然你提到了小绿点,那应该是在 github 上且开源的项目。

第一种是针对未授权或者不信任的陌生人。
如果是同项目组的或者你确信他不会给你搞破坏的人,一般都不用第一种。

第二种是显示小绿点的,我刚才测试过了,而且 github 帮助也明确说了这种情况:
>> You are a collaborator on the repository or are a member of the organization that owns the repository.
https://help.github.com/articles/why-are-my-contributions-not-showing-up-on-my-profile/
如果没显示小绿点,你看看是不是不符合其他的条件。

其实还有一种方法,你们建立一个 organization ,项目组都加入这个 organization 。
liubiantao
2015-03-08 09:29:44 +08:00
哦,对了,只有更改默认分支(一般是 master) 还有 gh-pages 才会显示小绿点,所以等你的 branch merge 到 master 之后,小绿点就出来了。
msg7086
2015-03-08 11:11:58 +08:00
我们以前单位里开发开源软件,是每个人一个branch,完成以后开PR,测试通过&审查通过以后统一merge。
和小绿点没关系吧?只要做好账号关联应该都有点?
wittyfox
2015-03-08 12:13:41 +08:00
spacewander
2015-03-08 13:52:12 +08:00
第一种适合添加小特性或者bug fix,第二种适合去尝试一些新功能。
chunyang
2015-03-08 15:09:52 +08:00
你有权限的话,也可以开个 feature 分支,然后提交 PR,过一段时间自己或者让别的有权限的人 merge 掉你的 PR,幸运的话,有人会帮你做 review。

这样的话 commit 历史中会多一个 merge 记录(merge v.s. rebase)。

P.S. 开个 PR 本身 Github 似乎也算作一个绿点,同样的,开个 issue 也算

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/175272

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX