我在 Github 上有一个 repo 的克隆,我在其中为上游创建了一个新功能。问题是,我是在我的 master 分支中这样做的,该分支还包含我从其他克隆中提取的其他内容。这完全破坏了我创建合理 pull 请求的能力。
所以我想做以下事情:
- 将我的 master 分支恢复为与上游 master 完全相同。
- 创建一个新分支。
- 将我的一些旧提交移至新分支。
- 在分支之外创建 pull 请求。
而且,在未来,我将在分支中完成我的所有工作并从它们创建 pull 请求,同时让我的 master 分支单独存在并 merge 来自上游的任何内容。
我的问题是:
- 这是一种合理的方法吗?
- 我实际上应该如何执行第 1 步和第 3 步?
最佳答案
创建一个新的分支来 stash 东西
$ git branch old_master
发送到远程进行备份(以防万一)
$ git checkout old_master
$ git push origin old_master
在开始修改内容之前将本地 master 重置为提交
$ git checkout master
$ git reset --hard 037hadh527bn
merge 来自 upstream 的更改主人
$ git pull upstream master
现在删除远程仓库上的master
在 github 上,如果不先进入 fork 的管理部分并将默认分支暂时设置为 master 以外的其他分支,这是行不通的,因为他们试图保护你不被吹走。
$ git push origin :master
并重新创建它
$ git push origin master
在 github 上,你现在应该将默认分支设置回 master
关于git - 清理 git master 分支并将一些提交移动到新分支?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5916329/