git在不合并的情况下将基础(?)重新设置为上游?

git在不合并的情况下将基础(?)重新设置为上游?,git,git-rebase,git-fork,Git,Git Rebase,Git Fork,(注意:我强烈怀疑我的问题是我不知道要搜索什么术语,很可能我使用的术语和我实际想要的是不同的东西。请不要根据我使用的术语假设太多。) 编辑:以下所有内容都与远程有关。(为了便于讨论,假设一开始,任何地方都不存在本地客户端,一旦我完成,创建的任何本地客户端都将被删除。) 我创建了一个fork,创建了一个PR,它被合并到上游,我尝试了一个重基。但是现在当我看到我打算继续使用的分支(例如master)时,它们显示为上游/master和我在fork中所做的东西的合并,尽管没有来自上游的更改 我想要的是,

(注意:我强烈怀疑我的问题是我不知道要搜索什么术语,很可能我使用的术语和我实际想要的是不同的东西。请不要根据我使用的术语假设太多。)

编辑:以下所有内容都与远程有关。(为了便于讨论,假设一开始,任何地方都不存在本地客户端,一旦我完成,创建的任何本地客户端都将被删除。)

我创建了一个fork,创建了一个PR,它被合并到上游,我尝试了一个重基。但是现在当我看到我打算继续使用的分支(例如master)时,它们显示为上游/master和我在fork中所做的东西的合并,尽管没有来自上游的更改

我想要的是,当在GitHub上观看时,我的fork的master能够反映现实,并显示出它的历史上只有upstream/master。即:

如果我不介意丢失其余的历史记录,我可以通过删除整个存储库并重新开始来实现这一点,但是对于这样一个常规和必要的操作来说,这似乎是非常激烈的(如果我有其他正在进行的工作的分支的话,根本不起作用)

我想要的是让我的fork的master在GitHub上反映现实,并显示出它的历史上只有上游/master

如果我理解正确,那不是现实。叉子的历史记录从叉子的制造点开始,而不是从远程主机所在的位置开始。您的fork将永远与远程并行运行,并根据需要进行向前/向后合并

当I
git重置上游/主节点时;git push origin master
I get“更新被拒绝,因为当前分支的尖端位于远程分支的后面。”

简单的回答是,使用git push origin master-f,您可以实现您想要的功能,有效地消除fork的历史记录,并干扰其他可能正在使用您的fork的人

您所描述的听起来更像是您在远程直接参与的工作流程,为每个功能创建一个新分支

我对上下文的理解:

顶部是一个典型的fork工作流,底部是在远程平台上作为参与者开发独立功能分支时所遵循的工作流。
Red是fork的master上的一个(完全有效的)提交,在合并到remote之后

我不清楚您的本地
master
分支中是否有要应用于远程
master
之上的更改,或者您是否只希望
master
与远程相同。前者可能很复杂,这取决于您所处的确切状态。后者只是重置:
git reset upstream/master
。origin/master中所有文件的当前内容与upstream/master相同当我尝试
git重置上游/master时;git push origin master
I get“更新被拒绝,因为当前分支的尖端位于远程分支的后面。”您可以通过强制推送来解决此问题,但您可能不应该这样做,除非您是唯一一个使用分叉的人。您的图表正是我所期望的。-要反映的现实是,我将创建多个“工作项”,其中每个工作项的历史都从上游/硕士历史中的某个点开始(而该起点不会是我的回购协议的合并)。我预计这些工作项将相互依赖,但只能通过上游但如何做到这一点呢?可能有一个只使用命名分支的repo,并且永久忽略master()?或者说师父根本不存在的地方?恐怕我认为在github上做你想做的事情是不可能的。在github之外,您只需在存储库中创建分支,而不必处理fork。