git - 将代码推送到过时的 git 分叉分支中
问题描述
我对 git 还是有点陌生。我将提交推送到分叉分支。尝试从分叉分支向主分支提出拉取请求。但是拉取请求显示了我的两个旧提交,它们已经由主分支的所有者合并。
在今天开始工作之前,我确实提取并拉上了分叉的分支。如果它们被合并,为什么会出现这些旧的提交?我需要摆脱这些旧的提交,以仅使用一个新的提交来进行干净的拉取请求。我有点困惑。请帮忙。
解决方案
--rebase
不知道您如何更新您的分支,如果您使用相同的分支,您可能需要添加标志:
git pull --rebase upstream master
这应该将您的分支快速转发到分支上的最新提交master
。
您可能要考虑的另一件事是更改您的工作流程。不要使用相同的分支,而是从最新的master
分支(或任何目标分支)开始。如果您想使用相同的分支名称,但知道这些更改已合并到您的目标分支,请删除该分支,然后创建一个新分支。
(my-branch)$ git checkout master
(master)$ git pull upstream master
(master)$ git branch -D my-branch
(master)$ git checkout -b my-branch
(my-branch)$ // should be a fresh branch now
需要注意的一件事是,如果您收到“将 master 合并到 master”的合并提交,这意味着您在本地master
分支上进行了不在远程master
分支上的更改。如果您知道这些更改可以保留在master
分支上,那么您应该使用该--rebase
标志,以便它只是将您的当前指针快进到最新的指针,master
以避免合并提交。
这篇中等帖子似乎比我在这里更深入地解释了它 - https://medium.com/@mvuksano/git-tips-use-only-fast-forward-merges-with-rebase-c80c9d260a83 .
推荐阅读
- java - 动态转换为 uknown 类 java
- c# - 不应该混淆删除我的 dll 的签名吗?
- java - 使用 WITH 查询使用 INSERT INTO ON CONFLICT 的问题
- git - 如何基于自定义标签触发构建并在构建之前验证要构建的代码
- android - 如何在 android studio 中使用改造在应用程序中播放视频(获取 Rest Api 中的链接)
- qt - QBS:qbs-setup-qt 无法检测到目标平台
- amazon-web-services - EC2现货实例市场容量短缺数据
- java - 如何使用 MIDlet 创建文件
- java - 找到具有最多子串回文的字符串排列
- java - jar 文件的自动模块 VM 选项