(i'm looking for a solution not just for current git but, sadly, going back to git-2.9.2, which is installed on my current contract build system, and i have little authority to bump it up.) summary: made a couple dozen commits on branch, call it "oldb", where i was relatively undisciplined about enforcing clean, modular commits so i want to go back and clean things up -- refactor by changing order, combining some trivial commits into one, breaking large, unwieldy commits into smaller pieces, better commit messages and so on, so i start a new branch "newb" at the same origin, and here's the problem. every old commit consisted of adding a new patch to an existing openembedded recipe, so every commit had two components: * a brand new patch file to be placed under "files/", and * adding a new line to SRC_URI variable, as in: SRC_URI += " \ first.patch \ second.patch \ third.patch \ ... etc etc ... " i think you see the problem. a commit adding a brand new file will never create a merge conflict, as it's a new file. but if i start reordering commits, then the addition of that line to the .bbappend file will *certainly* conflict as the patches will almost certainly be renamed and in a different order. what would be great is some sort of "-p" (patch selection) option with cherry-pick, but i don't see that. what would work for me is to auto-get the addition of the patch file from the old branch, at which point i am more than happy to manually fix the .bbappend file and manually do another commit. i'm thinking i can just "git checkout" the new patch file from the old branch, and take it from there. thoughts? am i overthinking this? rday