How can I skip commits in git?

I have some commits that I don’t want in my project, but there’s a commit based on them which I do want in it.
This is my GitHub “Network” graph of the repository (ASCII, as I still cannot post images):

|        |
|        ------->|

(-> means a merge)

I want to delete the changes made in the two [·] commits, and base the [*] one on the [_] one above.
I’ve tryed merging and rebasing, but they apply the changes of the unwanted commits.
Is it possible?

Sorry if I’m not clear, English isn’t my mother language.
Thanks in advance.

  • Git commit manually editting hunk
  • How to delete a commit on a git remote?
  • How to commit a Git file locally?
  • Android Studio showing unchanged files in commit changes dialog box
  • Restoring deleted file with Git after having returned to a earlier Checkout
  • Git: Weird phenomenon in commit conflict
  • Undo a git commit
  • Git discarded uncommitted changes after checkout
  • 3 Solutions collect form web for “How can I skip commits in git?”

    I can give you two options:

    • Interactive rebase (git rebase -i) presents you a list of commits, editing this list will change the result of the operation; lets you reorder, delete or tag these commits for miscellaneous operations. In your case, you can rebase [*]‘s branch into [_]‘s and delete the lines unwanted commits.

    • Cherrypick lets you apply the changes of a single commit into another branch. In your case, you can simply cherrypick commit [*] into [_]‘s branch.

    You could check out your _ and cherry pick the *. If you want that on a separate branch, you can branch off from _ before doing this.

    You can combine your commits by rebase and squashing the ones you dont need. May be you did not do squash and pick.

    Refere this:

    Git Baby is a git and github fan, let's start git clone.