几个月前,我在 Github 上创建了一个 repo,并提交了 3 次。我想向原始项目提交包含一些错误修复的拉取请求,但其中一个提交有一些不适用于他们的更改。
我到底该如何解决这个问题?我来自 svn 背景,所以大多数术语等具有我所期望的非常不同的含义。
创建一个只包含您想要的更改的新分支,并从该分支而不是您的主分支提交拉取请求。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
将其推送到您可以从中发出拉取请求的服务器。
要摆脱提交,您可以执行以下操作。
git log
以获取您想要摆脱的提交的哈希值git rebase --interactive abc123^
,其中 abc123 是错误提交的哈希