我根据优秀的Slate framework from TripIt为我公司的API提供了一套文档。根据说明,我分叉他们的回购并继续定制它。那个叉子住了here。
令人讨厌的是,当我的组织中的贡献者做一个新的拉取请求时,"基础叉"在Github"比较变化"屏幕默认为TripIt的存储库,而不是我的fork。他们不止一次将拉请求发送到错误的地方。告诉别人"不要这样做"不是一个特别可靠的解决方案。如何设置PRs基于叉子的默认值?
答案 0 :(得分:7)
GitHub会跟踪通过其界面创建的分支,并假设拉取请求将针对该原始存储库。您需要告诉GitHub您的副本不是分支,而是恰好具有相同历史记录的常规存储库。可悲的是,GitHub没有提供一个好方法来取消勾选fork链接。我通常以这种方式解决它:
克隆存储库git pull
,确保您的本地副本完全是最新的。
删除GitHub上的存储库。
使用完全相同的名称在GitHub上创建存储库。确保它是一个空的存储库(不要创建README
或LICENSE
文件。)
git push
将所有内容重新放回存储库。 (您可能需要切换到每个分支并推送它,您也可能需要git push --tags
。)
FRAGILE :此方法会丢失现有的GitHub问题并提取请求评论。如果您大量使用这些方法,这种方法可能不是一个好主意,您应该contact GitHub customer support来帮助您。
答案 1 :(得分:2)
您的其他开发人员似乎已经分叉TripIt
的存储库,因此这是他们工作的源/父。
事实上,如果你打开own repository,你会发现它根本没有分叉(分叉数为0)。
当他们发出合并请求时,默认情况下github会将该存储库显示为源,因此拉取请求不会发送给您。
在这种情况下,最简单的解决方法是让您的开发人员分叉您的存储库,并对其进行处理。
答案 2 :(得分:1)
不幸的是,GitHub没有提供一种配置默认PR目标存储库的方法。
如果您可以删除(或让所有者删除)从其分叉了B的原始存储库A,那么就可以解决问题。
如果无法删除删除A,但是A的所有者愿意执行以下操作,则fork链接至少在GitHub Enterprise上会断开:
执行此操作后,存储库B(最初是从A派生的)将默认为针对自身而不是A打开PR。
注意:如果A本身是从历史上更远的地方派生出来的,那么不幸的是,一旦A走了,B似乎开始默认针对该回购开放PR。唯一的解决方案是将以上内容应用于派生树中上游的所有存储库:(