git - 清理 git master 分支并将一些提交移动到新分支?

标签 git github

我在 Github 上有一个 repo 的克隆,我在其中为上游创建了一个新功能。问题是,我是在我的 master 分支中这样做的,该分支还包含我从其他克隆中提取的其他内容。这完全破坏了我创建合理 pull 请求的能力。

所以我想做以下事情:

  1. 将我的 master 分支恢复为与上游 master 完全相同。
  2. 创建一个新分支。
  3. 将我的一些旧提交移至新分支。
  4. 在分支之外创建 pull 请求。

而且,在未来,我将在分支中完成我的所有工作并从它们创建 pull 请求,同时让我的 master 分支单独存在并 merge 来自上游的任何内容。

我的问题是:

  1. 这是一种合理的方法吗?
  2. 我实际上应该如何执行第 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/

相关文章:

git push 整个本地仓库覆盖远程仓库

git - Magento 的 SUPEE-6788 补丁不适用于 Git/Github

linux - 在所有远程和本地 GIT 分支中查找特定文件夹

git - 与 Chef 一起检查 Git 存储库?

github - 禁止在 GitHub 上合并您自己的拉取请求

git - 如何在没有 git 添加它们的情况下进行 git pull

heroku - 将 Heroku 与现有的 GitHub 存储库一起使用

git - 无法建立真实性主机 github.com (140.82.xxx.x) - RSA key 指纹是 SHA256 :nThbgh78. ..您确定要继续吗?

eclipse - 带有eclipse项目的git服务器

Github - TLS 证书验证已被禁用!在 Windows 上