如何在两者之间建立一个具有拉取请求的公共/私有 git 存储库 [重复]

2024-02-21

我在 github 上有一个公共存储库,我组的每个用户都有一个它的分支。该政策是禁止直接提交到主存储库,所有更改都必须作为来自分叉的拉取请求进来,以便在合并到主存储库之前可以对其进行审查。

鉴于有时我们开发的代码必须在主存储库中公开之前保持私有一段时间,我希望出现以下情况:

  • 主要回购公开
  • 福克斯私人
  • 能够从分支向主存储库发出拉取请求
  • 考虑到一些用户是 git 初学者,让事情变得简单

现在,在 Github 上这是不可能的,因为不允许私人分叉。

我可以使用什么策略来实现类似的行为?


我刚刚做了类似的事情。 对我有用的解决方案是创建一个新的私有存储库作为主存储库的裸克隆,并将所有新更改推送到此私有存储库,一旦更改准备好公开,将更改推送到公共回购。

我按照以下步骤操作:回答这个问题:Martin Konicek https://stackoverflow.com/questions/10065526/github-how-to-make-a-fork-of-public-repository-private/30352360#30352360

  1. 复制存储库(详细信息here https://help.github.com/articles/duplicating-a-repository/):

  2. 创建一个新的存储库(private-repo)通过GitHub用户界面 https://github.com/new. Then:

    git 克隆 --barehttps://github.com/exampleuser/public-repo.git https://github.com/exampleuser/public-repo.gitcd 公共仓库.git git push --镜像https://github.com/yourname/private-repo.git https://github.com/yourname/private-repo.git光盘 .. rm -rf 公共仓库.git


  1. 克隆私人存储库,以便您可以对其进行处理:

    克隆https://github.com/yourname/private-repo.git https://github.com/yourname/private-repo.gitcd 私人回购 做一些改变 git 提交 git推送原点大师


  1. 要从公共存储库中提取新的更改:

    cd 私人回购 git 远程添加公共https://github.com/exampleuser/public-repo.git https://github.com/exampleuser/public-repo.gitgit pull public master # 创建合并提交 git推送原点大师

私人存储库现在拥有公共存储库中的最新代码以及您的更改。


  1. 创建拉取请求私有存储库 -> 公共存储库:

创建拉取请求需要推送对公共存储库的访问权限,因为您需要推送到那里的分支(这就是为什么 https://stackoverflow.com/questions/14821583/pull-request-without-forking).

git clone https://github.com/exampleuser/public-repo.git
cd public-repo
git remote add private_repo https://github.com/yourname/private-repo.git
git checkout -b pull_request_branch
git pull private_repo master
git push origin pull_request_branch

现在只需通过 Github UI 为 public-repo 创建一个拉取请求,如所述here https://help.github.com/articles/creating-a-pull-request/.

一旦项目审查了拉取请求,您就可以合并它。

第一次之后,您只需从所需的远程(公共或私有)中拉取并推送到(私有)即可。完成更改后,将更改推送到(私有:以保持最新)和公共上的某个分支,以便可以创建对 master 的拉取请求。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在两者之间建立一个具有拉取请求的公共/私有 git 存储库 [重复] 的相关文章

  • 全局 Git 忽略

    我想将 Git 设置为全局忽略某些文件 我添加了一个 gitignore文件到我的主目录 Users me 并且我添加了以下行 tmproj 但它并没有忽略这种类型的文件 知道我做错了什么吗 您需要设置您的全局core excludesfi
  • 如何使用 OR/AND 运算符在 GitHub 上进行搜索

    如何在 GitHub 上搜索包含关键字 java AND python 或 C 的问题 是否可以使用 OR AND 等逻辑运算符来表示搜索 事实证明 GitHub并没有提供实现ANR OR这样的搜索逻辑的函数 我想到的解决方案是编写一个爬虫
  • GIT Pull 删除了我的提交

    在 git pull 之后 我已经完成了 git Reset 以在合并之前撤消与提交 ID 的合并 不知何故 我的整个提交都消失了 而且我也无法在历史记录中看到该提交 但我有提交 id 在 git show 命令上我可以看到我的更改 我如何
  • 版本控制 rpm 规范文件

    我正在配置一台构建机器来为大量非常相似的项目生成 rpm 每个项目的规范文件在名称上以及有时在依赖项和其他属性上都略有不同 每个项目都有自己的 git 存储库 其中包含项目文件 这些规范文件仅存在并且实际上仅对构建系统本身有用 每个项目都可
  • 从私有 GitHub 存储库迁移到公共和私有

    我使用 GitHub 上的私人存储库开发了一个客户项目 我们现在要做的就是开放其中的某一部分 并产生该项目的开源版本 我们的想法是 客户的版本将在此基础上构建 对开源版本所做的任何更改也应适用于私有版本 现在的问题是我不能将当前的 GitH
  • Git merge --squash 可以保留提交注释吗?

    有没有一种方法可以自动添加压缩后的所有提交注释mybranch执行时提交 git merge squash mybranch 这样单个提交包含所有提交注释的串联mybranch 我认为这就是 git merge squash 自动执行的操作
  • 在“git rm -rf”之后恢复暂存但未提交的文件

    在我的本地计算机上 我从文件夹中删除了文件 git init git add all 然后我写了 不要问我为什么 git rm rf 我还没有承诺 现在我的项目中有空文件夹 在 git文件夹有objects包含 53 Mb 的文件 我怎样才
  • 当我所做的只是压缩提交时,为什么 git-rebase 会给我带来合并冲突?

    我们有一个包含 400 多个提交的 Git 存储库 其中前几十个提交需要大量的反复试验 我们希望通过将许多提交压缩为单个提交来清理这些提交 当然 git rebase 似乎是最佳选择 我的问题是它最终会产生合并冲突 而且这些冲突并不容易解决
  • 分支和文件夹的 gitolite 权限

    在 gitolite 我想要 developers能够推送到除以下之外的任何分支master I want user1能够推送到任何分支 包括master 除了不是某个目录master 我该怎么做呢 这应该解决以下两个问题 repo are
  • git 中的 web.config 和 app.config 机器特定设置

    我们在不同的办公室有多个开发团队 他们需要为我们项目中的许多配置设置使用不同的值web config and app config files 我们希望使用一组合理的默认值来检查这些配置文件 这样通过检查 trunk master 分支 您
  • 将环境变量从 fastlane 传递到 Xcode 构建阶段脚本

    是否可以 如果可以 如何 将环境变量从运行 fastlane 的脚本传递到 Xcode 运行脚本阶段 我的最终目标是在运行脚本阶段读取当前的 git 分支名称 我们的 CI 由 Team Foundation Server 运行 它执行以下
  • 如何找出在哪个提交中添加了特定代码?

    我想知道我在哪个提交中添加了下面给出的代码 if getListView getChildCount 0 getActivity findViewById android R id empty setVisibility View VISI
  • 从 svn 到 git,移动了主干

    我正在尝试将 svn 存储库切换到 git 这是一个旧的存储库 以前的维护者之一为每个新版本移动了主干 例如 以前的存储库位于 svn ssh svn mycompany com project release 1 trunk 现在 我们当
  • 如何从旧提交创建新的 Git 分支? [复制]

    这个问题在这里已经有答案了 可能重复 最近 不太明确的问题 使用 Git 从先前的提交分支 http stackoverflow com questions 2816715 branch from a previous commit usi
  • Github-pages:下载版本[重复]

    这个问题在这里已经有答案了 我有一个 GitHub 存储库 虽然我已经发布了该项目 但页面上没有出现相应的下载链接 我使用 gh pages 向导创建了此页面 有什么建议可以获取通常的 下载最新的 tarball zip 下载链接吗 您似乎
  • 使用可通过 FTP 访问的 Web 服务器进行 Git 托管?

    我运行一个 糟糕的 网站 托管在第三方网络服务器上 我可以通过 FTP 访问我的 Web 服务器 据推测 Git 本身具有通过 FTP 推送 拉取的能力 由于我的 Web 服务器已经可以随处访问 我希望将其用作集中式 Git 存储库 我可以
  • 从子文件夹自动部署 Heroku

    我知道你可以从github自动部署到heroku 但我还没有找到一种方法只将子文件夹从github推送到heroku 从命令行我知道可以通过以下方式执行此操作 git subtree push prefix
  • 如何防止自动工具自动重新生成配置脚本?

    有时由于SCM没有严格记住文件的时间戳 生成的Makefile会认为需要重新运行 autoreconf i 或相当于从Makefile am重新生成Makefile in 从configure ac重新生成配置等 我该如何防止这种情况 我想
  • 使用 git 同时维护不同版本的代码

    我有一个需要优化的代码 我想同时维护一组版本的代码 每个版本可以描述为一些功能 优化的组合 最终 我将决定哪个版本是最好的 我不想将这些版本合并为更少的版本 但是 我希望能够对 大 源文件进行 小 修改 这可能会跨版本转移 并且我希望这一修
  • AWS Codepipeline 是否会将符号链接传递到工件中的 Codebuild

    我的 github 存储库中有一些符号链接 当我有一个直接从 github 克隆的 Codebuild 项目时 符号链接会被保留 我进行了切换 以便 Codepipeline 监听我的更改devgithub 中的分支 并将工件传递给 cod

随机推荐

  • 内联块的水平滚动在 Firefox 中有效,但在 Chrome 中无效

    我已经在 Firefox 中实现了水平滚动 但在 Chrome 中不起作用 在 Firefox 中我遇到这种情况 其中 A B C D 是 div 但是当使用 Chrome 访问同一页面时 我看到的是 div 的结构如下 div class
  • 下载时进度条

    我有一个可进行应用内下载的应用程序 我通过以下方式成功下载了mp3文件 NSData data1 NSData dataWithContentsOfURL NSURL URLWithString http somefile mp3 data
  • “HTTP.SYS 中的 URL 保留”是什么意思?

    无法理解这句话的意思 论坛上的人们互相建议在 HTTP sys 中保留 url 但这意味着什么呢 它是做什么用的 它是如何运作的 这一切都来自于 HttpWebRequest uac 问题 一些 Win32 API 和 NET 框架组件 例
  • 百度的echarts - 填充两行之间的空间

    我想找到一种在 ECharts 中绘制两条线并填充它们之间的空间的方法 如下所示 这样每条线都有自己的颜色 根据线条的顺序 区域填充为一种颜色或另一种颜色 见图 有本地方法吗 我发现有些人在提到extensions 但没有人提供任何关于如何
  • 无法将 undefined 或 null 转换为 Next.js 中的对象

    嘿 我正在使用 Next js 和 next auth 构建一个登录页面 我还在providers数组中写过 nextauth js 但是当我运行代码 如下所示 时 import getProviders signIn from next
  • 我可以在移动应用程序的 PKCE Flow 中使用授权码吗?

    我知道 OAuth 2 0 授权代码与 PKCE 流程是 OAuth 的最佳实践 我们计划将它用于我们的 WEB 应用程序 但我不明白如何在不使用浏览器进行身份验证的情况下将此流程用于我的移动应用程序的本机用户体验 https medium
  • read() 函数的返回值是什么类型?

    我想从二进制文件中读取前 188 个字节 并检查第一个字符是否为0x47 代码如下 import os fp open try ts rb for i in range 100 buf fp read 188 if buf 0 x47 pr
  • Azure Bot Framework 模拟器错误 - System.ArgumentNullException:值不能为 null

    我需要一些帮助 我是 Azure 机器人框架开发新手 几周前使用 QnA 知识库创建了我的第一个聊天机器人 无论如何 我设法在 Azure 门户中创建了机器人 并且它运行良好 但我需要在 Bot Framework Emulator 使用
  • 从四元数查看矩阵

    我目前正在构建自己的四元数相机 据我所知 您只需要一个四元数即可完全指定相机的方向 如果我错了 请纠正我 那么 我将如何创建视图矩阵 顺便说一下 我使用 C 作为编程语言 任何帮助 将不胜感激 首先是一些注意事项 您会在网络上和有关该主题的
  • 如果一个 ViewController 中有两个 UITableView,一个带有自定义单元格引用,另一个是简单的,会怎么样?

    我正在尝试在一个 ViewController 中使用两个 UITableView 一个 UITableView 带有自定义单元格的引用 另一个很简单 我已经编写了这段代码 但它给了我控制错误可能会到达非 void 函数的末尾 所以给我建议
  • 如何在SQL中实现过滤系统?

    现在我计划在我的网站上添加一个过滤系统 例子 ID apple COLOR red TASTE sweet ORIGIN US ID mango COLOR yellow TASTE sweet ORIGIN MEXICO ID banan
  • 如何更改 powershell 脚本中哈希表列的标题

    我对 Powershell 脚本编写相当陌生 我正在编写一个 power shell 脚本 其中声明了一个哈希表 如下所示 a 1 b 2 my hash my hash Add a b 当我在 Powershell 中打印该表时 哈希表的
  • 在 Task.WhenAll 中执行多个任务时的 C# 线程

    如果在单个线程上执行以下操作 会发生什么 await Task WhenAll items select x gt SomeAsyncMethod x Where SomeAsyncMethod is defined like this w
  • 如果没有 EnableWebMvc,RequestMapping 如何工作?

    I see RequestMapping无需注释即可工作 EnableWebMvc在 Java 配置类级别 这看起来像 EnableWebMvc不再需要 谁能让我理解这里的流程 这是我的工作example显示简单的jsp页面使用弹簧4 1v
  • SLF4J错误:类加载器具有不同类型的类对象

    试图找出为什么我在 tomcat 日志中收到以下错误 Caused by java lang LinkageError loader constraint violation when resolving method org slf4j
  • Java堆中的constantPoolClass?

    我继承了一个 Java 小程序 一个实际的 它在运行大约 4 天后抛出 OutOfMemory 异常 小程序的性质使得人们确实会长时间打开它 运行近两天后 jmap histo 将顶部堆消费者显示为 num instances bytes
  • Numpy 二维移动平均线

    我有一个二维 numpy 数组 我想取每个条目最近的 n 个条目的平均值 就像在一维数组上取滑动平均值一样 最干净的方法是什么 这与应用类似的概念filter to an image 幸运的是 scipy ndimage filters h
  • 奇怪的 HttpClient 结果

    当尝试从 Hitbox API 获取数据时 我得到了一个奇怪的结果 对于一个 API 的命令 这种情况每次都会发生 而对于另一个 API 的命令 这种情况只是有时发生 结果或多或少是这样的 这是我得到的最后结果 u001f b 0 0 0
  • HTML5画布覆盖透明渐变

    我正在 HTML5 中创建一个颜色选择器 如下面的渐变 它由三个要素组成 纯红色背景色 必须可变 从下到上黑 透明渐变 从左到右白色透明渐变 我已经成功创建了单个渐变和单个颜色 但我不知道如何将纯色和两个渐变叠加在一起 我怎样才能做到这一点
  • 如何在两者之间建立一个具有拉取请求的公共/私有 git 存储库 [重复]

    这个问题在这里已经有答案了 我在 github 上有一个公共存储库 我组的每个用户都有一个它的分支 该政策是禁止直接提交到主存储库 所有更改都必须作为来自分叉的拉取请求进来 以便在合并到主存储库之前可以对其进行审查 鉴于有时我们开发的代码必