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)
- Fetch file, modify contents, and commit with JGit
- How to remove history of deleted git subtree folder?
- How do I place a dummy file in a git repo?
- git commit --amend is dangerous
- How to disable automatic stage for a specific file in Git
- Undo git commit in Rstudio that is too big to push
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.
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
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.