【发布时间】:2021-01-27 10:10:57
【问题描述】:
所以我的上游仓库的主分支有点乱。
上游分支的提交如下所示。
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 和 upstream 如下所示。
origin - http://myrepo.git
upstream - http://main-repo.git
分叉存储库基本上是远程存储库的镜像克隆。在 bit bucket UI 上,有一个选项可以创建一个 fork 并在 origin 和 upstream 之间启用 fork 同步。
当我说分叉分支时,它意味着分叉存储库上的分支。
【问题讨论】:
-
上游仓库是什么意思?您是否有权强制推送?如果上游仓库不是你的,那你为什么要重置别人的仓库?
-
@ChuckLu -
origin将是我的分叉存储库,upstream是远程存储库。 -
@ChuckLu 并且没有权限强制推送上游仓库。
-
仍然对你的描述感到困惑,你所说的分叉分支是什么意思?第一次听说,才知道github上fork repository的概念。
-
其实对于repository的概念,比如user1在github上有一个repository1,比如user1/repository1。 user2 fork了user1的repository1,user2会在github user2/repository1上得到一个fork的repository。 User2 可以将分叉的 user2/repository1 克隆到本地文件夹 repository1。这里,user1/repository1 应该是上游仓库,user2/repository1 是一个简单的远程仓库。现在您可以在描述中明确说明您要更改哪个远程存储库(重写历史记录)?