Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
355 views
in Technique[技术] by (71.8m points)

git rebase --continue no changes

I have two branches with two features: banch_1 and branch_2. branch_2 uses feature from branch_1. I've made changes in the branch_1 and want to rebase branch_2 on branch_1 to get changes from branch_1 into branch_2.

So, I'm checking out on branch_2:

git checkout branch_2

And trying to rebase on branch_1:

git rebase branch_1

After that I get 'Merge conflict' for two files. So I run

git mergetool -t meld

and resolving that conflicts, choosing changes from branch_1.

I'm saving files and going to terminal, typing git status and see that there is no changes in git index. Next I run git rebase --continue and getting

No changes - did you forget to use 'git add'? 

error. But there is nothing to add! I type git log and see commit from branch_1 but there is no commit from branch_2.

What I'm doing wrong?

question from:https://stackoverflow.com/questions/34204447/git-rebase-continue-no-changes

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

If I understand correctly, when you're getting the merge conflict, you're accepting all the changes from branch_1, meaning that that particular commit from branch_2 is irrelevant - any changes in that commit are identical to the incoming changes from branch_1.

When git is saying

No changes - did you forget to use 'git add'?

it's telling you that the commit you're trying to apply doesn't make any changes to the repo, and therefore there's no reason for it to exist.

The simple solution to that is git rebase --skip, which just says "ignore this commit and move on" as suggested in @C-Otto's comment. This will skip the commit you're currently dealing with, and move on to subsequent ones.

You might also find it easier to use interactive rebasing (git rebase -i), which first presents you with a list of the commits it will apply, and gives you various options for what to do with each individual commit. In this case, if you identify a commit that is no longer relevant, you can skip it up-front, so you'll never see the conflict in the first place.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...