1

几个月前,我在 Github 上创建了一个 repo,并提交了 3 次。我想向原始项目提交包含一些错误修复的拉取请求,但其中一个提交有一些不适用于他们的更改。

我到底该如何解决这个问题?我来自 svn 背景,所以大多数术语等具有我所期望的非常不同的含义。

4

2 回答 2

1

创建一个只包含您想要的更改的新分支,并从该分支而不是您的主分支提交拉取请求。Doinggit branch origin my-new-branch-name将创建一个新的分支,您可以在没有对工作进行任何更改的情况下进行工作。然后git checkout my-new-branch-name将开始工作。然后使用例如应用您的更改git cherry-pick my_commit_id_1 my_commit_id_1。最后git push ssh://remote.host/path/to/repo my-new-branch-name将其推送到您可以从中发出拉取请求的服务器。

于 2012-08-24T23:01:33.503 回答
1

要摆脱提交,您可以执行以下操作。

  • 运行git log以获取您想要摆脱的提交的哈希值
  • 运行git rebase --interactive abc123^,其中 abc123 是错误提交的哈希
  • 从编辑器中弹出的列表中删除错误提交(删除包含该提交的行:保留其他行)
  • 保存并关闭编辑器,Git 会将所有后续提交重新定位到错误提交的父级
于 2012-08-24T23:07:55.713 回答