Git 分支 - HEAD 分支上的拉取请求也需要之前的分支提交

2024-02-03

我来自 IBM RTC,所以我需要习惯 Git。
我已经分叉了一个存储库,在我的主分支上完成了几次提交并打开了一个拉取请求。

Pull request:
original-repository/master <- my-repository/master
  commit-1
  commit-2

然后我创建了一个新分支并推送了更改。我从新分支开始打开了另一个拉取请求,这就是我发现的。

Pull request:
original-repository/master <- my-repository/newbranch
  commit-1
  commit-2
  commit-3

如果我只想发出拉取请求怎么办commit-3?


我真的很惊讶它不是重复的......罢工>事实证明我已经回答了几乎同样的问题 https://stackoverflow.com/a/29029946/2468549%5D。就提交而言,它是重复的(即有一个分支有 2 个不必要的提交)。然而,问题以完全不同的方式陈述(例如,另一个问题没有提到拉取请求),如果不是我的答案,我就不会找到它。

Use git rebase --onto https://git-scm.com/docs/git-rebase.

在您的本地存储库中:

git checkout newbranch
git rebase master --onto origin/master
git push origin +newbranch  # May look slightly different for you; The point is, you need to force push (the + does that).

注意,在第二行中,master可以替换为HEAD~或其他参考commit-2.

简短说明: git 在指向它的提交之间进行提交(在本例中master)和当前提交,并在定义的点将它们一一复制--onto。如果某些提交无法自动应用,则该过程将暂停,您必须手动解决冲突。

Caveat: 除非您确定安全,否则请勿强行推动 https://stackoverflow.com/a/16702355/2468549。如果您推送到自己的分叉存储库并且可以假设没有其他人使用它,那么您可能没问题(即使它在技术上是公开的)。这是您的私人分支机构,有时可能足以意味着一切都很好。但重要的是要了解与删除历史记录(或试图).

替代方案(择优选择):我对另一个问题的回答 https://stackoverflow.com/questions/29029602/git-change-origin-commit-of-a-branch/29029946#29029946详细说明了一些替代方案。情况基本相同,分支 F1 包含不必要的提交。

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

Git 分支 - HEAD 分支上的拉取请求也需要之前的分支提交 的相关文章

  • 判断 Git 提交是否是合并/恢复提交

    我正在编写一个脚本 需要检查特定提交是否是合并 恢复提交 我想知道是否有 git 技巧 到目前为止我想到的 我绝对不想依赖这里的提交消息 是检查HASH 2看看我是否没有收到错误 是否有更好的方法 判断某个东西是否是合并很容易 这是不止一位
  • 从 git 中删除历史记录 - git 命令失败

    我正在尝试从 Git 历史记录中清除项目 bin 目录 我已经将 bin 添加到 gitignore 并运行 git rm cached r bin成功地 现在我尝试使用 GitHub 帮助页面中推荐的命令来清除历史记录 git filte
  • Git:结帐而不运行结帐后挂钩

    我有一个我喜欢的结帐后挂钩 大多数时候 但有时我知道运行它会浪费时间 或者 因为它会删除并重建我的开发数据库 所以我不希望它去做它的事情 有没有跳过钩子的 git 选项 公平地说 我已经开始寻找一个了 我认为没有命令行选项可以完成您想要的操
  • 如何预览 Git 中的隐藏内容?

    我想检查一个存储 并找出如果我将其应用于当前状态的工作树 它会发生什么变化 我知道我可以对存储进行 git diff 但这向我展示了工作树和存储之间的所有差异 而我只是想知道存储应用将改变什么 git stash show将向您显示最近存储
  • 如何重命名 GitHub 网站上的目录/文件夹?

    我在 GitHub 网站上找到了一种方法rename https github com blog 1436 moving and renaming files on github一个文件并成功完成 我也找到了一种方法rename https
  • git在Windows和Linux之间切换后强制刷新索引

    我有一个Windows和Linux共享的磁盘分区 格式 NTFS 它包含一个 git 存储库 约 6 7 GB 如果我只使用Windows or 只使用Linux操作 git 存储库一切正常 但是每次切换系统的时候git status命令将
  • 如何在 Windows 上向 git 存储库添加符号链接?

    我使用 GitHub 的电子环境编译 OS X 的二进制文件 并希望将输出添加到 git 存储库 我试过 git add error readlink sulu app Contents Frameworks Electron Framew
  • 在 git repo 中查找超过 x MB 且 HEAD 中不存在的文件

    我有一个 Git 存储库 用于存储随机的内容 主要是随机脚本 文本文件 我设计的网站等 随着时间的推移 我删除了一些大型二进制文件 通常为 1 5MB 这些文件会增加存储库的大小 而我在修订历史记录中不需要这些文件 基本上我希望能够做到 m
  • 通过 GitHub、Sonatype Maven 存储库提供 JavaDocs [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 尽管 Github 为 Java 开源项目提供了一个不错的家园 但与更成熟的开源托管场所相比 仍然缺少一些东西 到目前为止 我发现 S
  • Git 无效的修订范围 Symfony2 Composer 外部包

    RuntimeException Failed to execute git log 18efcf67d236d5bbf46ac67820250dffd0474b6e 94e2146f525fa1367e15646fa273e5b34f92
  • 重新打包存储库对于大型二进制文件有用吗?

    我正在尝试将大量历史记录从 Perforce 转换为 Git 并且一个文件夹 现在是 git 分支 包含大量大型二进制文件 我的问题是运行时内存不足git gc aggressive 我的主要问题是重新打包存储库是否可能对大型二进制文件产生
  • 推送时发生 Git 错误 - update_ref 失败

    当我尝试推送本地提交时遇到问题 这可能是在 Android Studio 崩溃时发生的 这是错误 update ref 引用 refs remotes origin master 失败 无法锁定 ref refs remotes origi
  • 如何从 android.googlesource.com 或 github.com 下载单个目录?

    我想下载 https android googlesource com platform frameworks base git master tools aapt https android googlesource com platfo
  • readthedocs 中自动生成的索引文件

    我无法上传到阅读文档 http docs readthedocs io en latest 我为我的项目准备的文档 我正在尝试了解问题所在 该文档在本地构建良好make html但我无法上传 GitHub 项目是ASCII基因组 https
  • git push heroku master 权限被拒绝

    我正在关注 ruby railstutorial 我运行命令 git push heroku master 它吐出了这个错误 Permission denied publickey fatal Could not read from rem
  • 如何将分支逻辑持久化到数据库中?

    我们正在构建一个供内部使用的调查引擎 我想知道如何将问题分支逻辑持久化到数据库中 任何机构之前做过这件事或者对数据库模式有什么想法吗 如果用户给出答案 我们需要根据添加到问题的逻辑跳到下一个问题 每个问题可以添加多个逻辑 For eg Qu
  • Git:显示分支之间的差异,忽略合并的提交

    我的存储库历史记录看起来像这样 x y z branch a b c d e master 我想获得 branch 完整历史记录的单个差异 即 像 git diff 输出 我不想要像 git log p 产生的一大堆差异 而不包括任何从 m
  • 如何将更改移出主分支

    基本问题 但这一直发生在我身上 进行更改working branch 切换到master git merge working branch git push cap deploy 到舞台 泡一杯新茶 然后我回来思考其他事情并开始做出一些改变
  • Haskell Stack 从 github 安装包依赖项

    是否可以使用 Haskell 堆栈从 github 安装软件包的版本 例如在一个 cabal or a stack yaml文件 如何在 git repo branch revision 上指向依赖项 对于堆栈 The 的文档stack y
  • `git ls-files -s` 输出中不同字段的含义是什么?

    在 Git 中 命令返回的典型结果行git ls files s好像 100755 be2c2e9b0966253096472d4b482c458bc892e493 0 gitignore 这些字段是什么意思 不用再犹豫了git ls fi

随机推荐