[英]git reset upstream branch
所以我的上游 repo 的 master 分支有点乱。
在上游分支上的提交如下所示。
A - Latest commit
|
B
|
C - Bad commit
|
D - Commit I want the upstream master branch to be at.
在我的分叉分支上,我可以执行git reset --hard D
。 但是如何将这些更改应用回上游主分支。 在创建从分叉分支到上游分支的 PR(拉取请求)时,没有显示任何更改。
注意:禁止在上游分支上直接提交,必须使用来自 Fork 的 Pull Request 来完成。
编辑这就是我克隆远程存储库的方式。
git clone http://myrepo.git
git remote add upstream http://main-repo.git
现在原点和上游如下所示。
origin - http://myrepo.git
upstream - http://main-repo.git
分叉存储库基本上是远程存储库的镜像克隆。 在位桶 UI 上,有一个选项可以创建分叉并在源和上游之间启用分叉同步。
当我说分叉分支时,它意味着分叉存储库上的分支。
如果需要通过拉取请求完成更改,则不能删除提交。
相反,您会想要还原; 这会创建一个新的提交,从而逆转坏提交的影响。 这两个变化都将成为历史的一部分。
正常创建一个新分支,然后运行命令: git revert hash_of_C
(在其中替换提交 C 的哈希值)。 审查更改,如果需要,使用git commit --amend
微调提交消息,然后像往常一样推送审查。
如果您绝对需要删除提交,则需要与项目负责人讨论。 编辑已经是上游master
一部分的历史记录对整个团队来说是一个重大的干扰,很可能你会被告知要恢复。 如果项目负责人同意提交 C 不能成为历史的一部分,他们可能会自己删除它,最有可能的是暂时授予自己直接推送给 master 的权限。 整个团队也需要得到提醒。
您想要的操作是带有 --force 的 git push,因为您无权执行此操作。
然后替代操作可以是还原操作,并且有一个优雅的解决方案可以让您还原多次提交。
如何恢复多个 git 提交?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.