Git interactive rebase no commits to pick
Like a non-interactive rebase, you have to rebase onto a particular commit.
With a non-interactive rebase, if you supply a direct ancestor of the current commit then you aren't changing anything; with an interactive rebase you can edit commits after the commit that you are rebasing onto, even if the commit is a direct ancestor of your current commit but you do have to specify this commit that you want to edit onwards from.
I don't know the details of your situation but you might want something like this:
# Opportunity to edit or prune commits between origin/master and current branch
git rebase -i origin/master
or
# Edit some of the last ten commits
git rebase -i HEAD~10 # Note that ~10 uses a tilde("~") not a dash("-"_) !
rebase -i
without a commit range will not display any commits. to rebase the last, say, 7 commits use the following:
git rebase -i HEAD~7
be careful though, that this will rewrite history. don't do it, if the commits are already pushed
for your second question: have a branch with your changes (basically a configuration branch) and regularly merge the other branches into it. this way the changes will not move to other branches
When you're using git rebase -i
, you usually have to specify from which commit do you want to perform the rebase. So, if, for example, you want to remove some of the commits among the last 10 to the current branch, you would do:
git rebase -i HEAD~10