Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

git: How to rebase all commits by one certain author into a separate branch?

I'm using some code for which no SCM is used+ and receive occasional updates in the form of all project files although only some of them have been changed only a bit. Up till now I just put my own changes in a git repo and solved these "updates" with a manual git add -p session which is getting more and more annoying with the amount of my own changes (those that are not determined to be published yet) increasing, and since luckily I did git commit --author "the others" for aforementioned "patches", I'd like to know:

How can all commits made by one author be separated into a new branch?

(I don't mind rewriting history in this case, the repo is only used by me)

The ideal solution would include a merge of the others' branch into mine after every "patch", but for now a final merge at the end may suffice.


+ yes, the Jedi did feel you cringe there

like image 205
Tobias Kienzler Avatar asked Apr 14 '11 12:04

Tobias Kienzler


1 Answers

I recently did this for someone:

git checkout -b other_work <sha1_of_where_to_rebase>
git log --reverse --author=others --format=%H <sha1_range> | xargs -n 1 git cherry-pick

Hope this helps

like image 73
Adam Dymitruk Avatar answered Oct 07 '22 21:10

Adam Dymitruk