I have a branch with commit A
with a version of an application with verified working state. Than there are N
commits that applied some potentially irrelevant/breaking changes. Followed by M
commits which purpose was to implement some feature, but other potentially irrelevant/breaking changes were introduced. I need to select and apply changes that are only relevant to introduced feature and get rid of those that are irrelevant/potentially breaking.
So, it looks like:
A -> N... -> M... -> P...
.
How can I compare changes from a set of M..
to A
?
Similar question: Git diff between two commits without some commits in the middle
CodePudding user response:
I would suggest to create a branch, which starts from A
, and contains only commits of the M...
range.
You can do this using git rebase -i
:
# create a new branch from your current branch :
git checkout -b feature
# run :
git rebase -i <A>
# an editor opens : the instructions on what to do with this file are
# explained as comments at the bottom of the file
# in your case : remove all lines mentioning commits in
# the 'N...' and 'P...' ranges
# save and exit
You may have to fix conflicts along the way, but the end result should be : a new branch, with a copy of all M...
commits on top of A
.
Comparing commits from this branch against A
will be more straightforward.
CodePudding user response:
git diff should be able to help you:
git diff commitA commitM