Git - 创建拉取请求而不分叉

2024-05-17

使用 git 已经有一段时间了。 关于 git pull request 有很多教程和解释。 其动机是什么等等。

我遇到两种情况:

1. 分叉 git 仓库

我查看了一些公共 git 存储库并决定我想要做出贡献,所以我:

  1. 通过以下方式创建重复的存储库Forking它。例如分支主。

  2. 进行我的更改并提交它们。

  3. 创建拉取请求(例如使用 GUI)
  4. 选择原始 git 存储库(主分支)与我的分叉存储库之间的比较。
  5. 提交该拉取请求。

2. 分支git仓库

假设我和我的团队成员正在开发这个 git 存储库。 我正在研究一个名为“我的功能”的功能。所以我做了以下事情:

  1. 创建一个名为“my-feature”的新分支。
  2. 做出我的改变。并承诺。
  3. 在选择 master 时创建拉取请求,例如base分支和“我的功能”分支为compare
  4. 提交拉取请求。

就像我说的,我理解拉取请求在上面的例子中的工作方式。

我的问题:镜像

然而,我正在做一项任务,其中明确要求我不是分叉存储库,而是镜像它。

我按照以下链接提供的 github 帮助中列出的过程进行操作:

https://help.github.com/articles/duplicating-a-repository/ https://help.github.com/articles/duplicating-a-repository/

基本上我所做的是:

创建公共存储库的裸克隆:

 git clone --bare https://github.com/exampleuser/old-repository.git

镜像推送到新存储库(位于我的 github 帐户上)

cd old-repository.git
git push --mirror https://github.com/exampleuser/new-repository.git

我进行了更改并将其提交到我自己的镜像副本中。 现在,如何在不分叉的情况下向存储库所有者创建拉取请求?


正如您已经指出的,只有两种方法允许您创建拉取请求:从分叉或当您具有原始存储库的贡献者访问权限时。如果你两者都没有,那么你就运气不好了。

您唯一能做的就是创建一个问题并请求拉取(这是一种非常手动的拉取请求)。

有一个关于 GitHub 命令行界面的相关问题hub,寻求一种方法无需分叉即可提交拉取请求 https://github.com/github/hub/issues/424。那里的评论讨论了这是如何工作的,并且许多成员指出,如果没有分叉,这是不可能的:

j1z0 https://github.com/github/hub/issues/424#issuecomment-28442620:如果您不推送权限,则必须使用分叉,因为 GitHub 中的权限是针对每个存储库而不是针对每个分支。


mislav https://github.com/github/hub/issues/424#issuecomment-94412568:如果您具有对原始存储库的推送访问权限,则只能在没有分叉的情况下打开拉取请求。然后您可以简单地推送到该存储库中的新分支并使用hub pull-request.

在其他情况下,您必须使用以下命令创建一个分叉:hub fork并推送到新的遥控器git push -u skywinder HEAD并打开拉取请求hub pull-request.

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

Git - 创建拉取请求而不分叉 的相关文章

  • 合并之间的 git rebase 会导致完全不相关的文件发生冲突

    我有一个大型 Git 存储库 几个月前引入了一个错误 我想bisect它 首先引入一个过去的提交 存储库 然后重播合并 做rebase到新的 commit 如下图所示 据我了解 由于合并 Git 似乎无法正常工作 预期的 但我想更好地了解为
  • hg 或 git 中的两个完整目录/项目之间存在差异?

    我继承了一个最初存储在 CVS 中的项目以及所有修订 我做了相当多的编辑 并且我试图比较我在原始目录中所做的所有更改 关于添加的新文件与旧文件 hg git 是否有某种实用程序可以让我进行树差异或类似性质的操作 也就是说 新添加的文件 删除
  • Git 中的合并冲突是由什么构成的?

    git 如何确定特定合并存在冲突以及冲突是什么 我的猜测是这样的 如果正在合并的两个提交有一个共同的父提交 并且如果它们都更改了父提交的 X 行 那就是冲突 让我的理解变得复杂的是 更改 X 行 可能意味着用几行新行替换它 但这仍然显示为一
  • 如何使用 sourceTree 进行推送?

    我正在使用 sourceTree 管理 Unity 项目 版本 4 6 3 我只是想返回到上一次提交 右键选择 将当前分支重置到此提交 在使用模式中选择 硬 然后放回上一次提交 之后 我尝试去推 但没有成功 抱歉 当时我忘记了错误 之后 我
  • RuntimeError:模型类 django_messages.models.Message 未声明显式 app_label 并且不在 INSTALLED_APPS 中的应用程序中

    我正在尝试使用https github com arneb django messages https github com arneb django messages打包我的消息传递内容并尝试了以下操作 pip install git h
  • 当出现错误时如何删除远程分支?

    我尝试过以下命令 但失败了 git push origin next remote error denying ref deletion for refs heads next To blah git remote rejected nex
  • 如何查看 github 的 SSH 密钥?

    我最近收到一封来自 Github 的电子邮件 要求我检查我的 SSH 密钥 请检查您的钥匙并确保您 认出他们 如果您有任何疑问 请拒绝钥匙并 上传新密钥 如何在 ubuntu 11 10 上使用 git 检查我的密钥 您可以按照 GitHu
  • 有人熟悉 git 错误“缺少对象 0000000000000000000000000000000000000000 for refs/heads/...”吗?

    我们正在运行 git v1 7 1 并配置了 gitweb 我们也使用 gitolite 进行管理 但我不认为这与这个问题有密切关系 有时我们会在 Apache 日志中收到如下错误 missing object 00000000000000
  • gitlab 上的权限被拒绝(公钥)

    我的问题是我无法从 GitLab 推送或获取 不过 我可以克隆 通过 HTTP 或通过 SSH 当我尝试推送时出现此错误 权限被拒绝 公钥 致命 无法从远程存储库读取 从我看过的所有线程中 这是我所做的 在我的计算机上设置 SSH 密钥并将
  • ssh 连接超时

    我无法在 git 中 ssh 到 github bitbucket 或 gitlab 我通常会收到以下错误消息 如何避免它 输出 ssh T email protected cdn cgi l email protection i ssh
  • 获取最新远程提交的 SHA1 [重复]

    这个问题在这里已经有答案了 可能的重复 git bash 如何检查是否有新的提交可用 https stackoverflow com questions 6006759 git bash how to check if theres a n
  • 如何升级 Windows 中 git svn 使用的 SVN 版本?

    我的公司正在将SVN升级到1 7 检查git svn version显示正在使用的SVN版本是1 4 6 我想获得 git svn 使用的 SVN 版本接近 1 7 但是 我没有看到有关更新 git svn 使用的 SVN 版本 在 Win
  • Visual Studio Code 内置故事,用于查看 git 提交历史记录并对其内容进行比较

    In this https stackoverflow com questions 37899765 how can i view the git history in visual studio code 60013101 noredir
  • Git:压缩 master 上提交的最简单方法[重复]

    这个问题在这里已经有答案了 可能的重复 如何使用 git 将最后 X 次提交压缩在一起 https stackoverflow com questions 5189560 how can i squash my last x commits
  • 自动生成/删除詹金斯工作

    我正在寻找一种自动创建一组詹金斯作业的方法 通常在创建新的 git 分支之后 我已经为maven尝试过这个插件 http evgeny goldin com wiki Maven jenkins plugin http evgeny gol
  • 未能将一些参考推送至 [email protected]

    当我尝试推送到 Heroku 存储库时收到此错误 我已经设置了autocrlf false在gitconfig中 但这个问题仍然存在 我也尝试过这个解决方案here https stackoverflow com questions 566
  • GIT - 推送到 (GitHub) origin master 没有任何作用

    我已经分叉了某人的 GIT 存储库 https github com nippysaurus toodledo objc 将其克隆到我的本地计算机 显示带有以下信息的来源 remote origin Fetch URL https emai
  • 如何禁用 GitHub 中的拉取请求?

    我试图了解如何禁用 github 中的 拉取请求 问题一 我们正在尝试使用变基工作流程 这意味着如果不是快速推进 那么使用拉取请求可能会有害 一种解决方案 为我想要禁用拉取请求的分支设置分支权限 或者将我添加为任何进入 master 的内容
  • 我可以忽略全局 .gitignore 吗?

    我的全局 gitignore 一般都很棒 但对于这个一次性项目 我不希望应用全局规则 如何删除这个怪异存储库的全局 gitignore 规则 在您的存储库中运行此命令 git config local core excludesfile f
  • 清理远程 Git 分支

    我已经将 SVN 存储库移至 Git 可能由于多次克隆 我现在只剩下一堆看起来像这样的分支 BranchA origin BranchA remotes BranchA remotes origin BranchA remotes orig

随机推荐