接下来要做的是:继续贡献新功能或修复自己专用分支中的其他错误(仅在您的分支上推送)。
意味着您的叉子停留了,但是叉子中的分支可以来去去了。
如果您不打算进一步捐款,也可以删除该分支,但是它将删除“您捐款的存储库”中的相应条目。
更容易:
- 删除叉子上的
fix
分支(实际上,现在已经为您删除了)(在本地克隆的仓库中:请参阅“ 在本地和远程删除Git分支 ”)
git pull upstream master
(如果master
是集成了您的修订的分支:合并将是一个快速的分支):此时无需重新设置基准。
- 在更新后的本地上重新创建一个修订分支
master
(现在有来自的最新版本upstream master
)。
但是,在提交任何将来的拉取请求之前,请不要忘记第一步:
首先fix
从上游目标分支重新建立当前分支()
(这是upstream
您分叉的原始存储库:请参阅“ github的原始和上游有什么区别 ”)
在将任何内容提交回原始存储库(“上游”)之前,您需要确保您的工作基于所述原始存储库的最新内容(否则拉取请求一旦应用便不会导致快速合并重新upstream
回购)。
例如,请参阅“ 用于管理github中共享存储库上的拉取请求的工作流 ”。
换句话说,upstream
当您忙于修复某些东西时,它会不断发展(已经提交了新的提交)。您需要从上游重播最新的修补程序,以确保您的提交仍与的最新版本兼容upstream
。
该OP桑托斯·库马尔要求在评论:
我已经从upstream
大师那里合并了,现在呢?
如果自从最近的请求请求以来没有进行任何新的修复,请参阅上文(fix
在更新的顶部删除并重新创建一个新分支master
)。
如果自请求请求以来您已完成其他工作,那么upstream
如果要提出新的请求,就不会合并:我会进行合并并变基:
git pull --rebase upstream master
这样,我所有的本地新作品都会在最近的作品上重播 upstream
master
提交(在我的本地仓库中获取)的基础,假设这master
是将集成我将来的请求请求的目标分支。
然后,我可以将本地工作推送到' origin
',这是我在的GitHub上的分支upstream
。
从GitHub上的分叉,我可以放心地发出拉取请求,因为它只会将新的提交添加到upstream
而无需任何合并解析:将这些新的提交合并到upstream
repo中将意味着简单的快速合并。
一个 git pull --rebase
没有指定哪个你想衍合上顶部的分支(当前已签出)fix
分支是行不通的:
(git pull --rebase
)说:
You asked to pull from the remote '`upstream`', but did not specify a branch.
我应该最后追加主人吗?这将做什么?它将删除我的fix
分支吗?
是的,您可以指定将成为拉取请求目标的分支,例如“ master
”。
那不会删除您的fix
分支,但是会master
在您的仓库中获取的上游重播它。
:)