git version 2.6.4 (Apple Git-63) system version: OS X EI Capitan 10.11.4 below is the steps: $ mkdir test_repo $ cd test_repo $ git init $ echo "hello" > README.md $ git commit -a -m 'Add README.md' $ git checkout -b A $ echo "world" > README.md $ git commit -a -m 'Add one line' $ git checkout master $ git checkout -b B $ echo "world" > README.md $ git commit -a -m 'Add one line too' $ [midify 'world' line to other things like 'git' using vi] $ git commit -a -m 'Modify one line' $ git checkout master $ git merge A $ git checkout B $ git rebase master [problem is here, cat README.rd we will get : hello and git instead of hello world git] 2016-05-13 13:23 GMT+08:00 Pranit Bauva <pranit.bauva@xxxxxxxxx>: > Please mention the version no of git you are using and your system. > I am answering according to git 2.8.1 Lubuntu 15.04 > > On Fri, May 13, 2016 at 10:34 AM, 李本超 <libenchao@xxxxxxxxx> wrote: >> Hi all, >> >> Yestoday when I worked using Git, I found a bug. It's about >> rebase. Or I don't know if it is a bug, maybe that is Git. Below is my >> problem: >> >> There is a master branch, and we develop in our own branch. >> Let's simplify this: there are two branches created at the same commit >> point at master. Then branch A add a function X. Branch B add funciton >> X too (yes, they are very same). Then branch B modify function X to >> function Y. > > What do you mean by this? Did you amend the previous commit, or > introduced another separate commit ? > >> Branch A finishes it's job first and merged to master >> successfully and happily without any conflicts. When branch B wants to >> merge to master, he finds that master has updated. So branch B must >> rebase to the current master. Then problem happends: git rebase >> successfully without any conflicts. But branch B cannot see function X >> from master (or branch A), only its own function Y. >> I think that's because Git is based on file instead of patch. >> But I think Git can report it in this situation. >> How do you think ? Thank you anyway for maintaining this amazing software. > > Well I tried to reproduce the problem. I did the following steps: > $ mdkir test_repo > $ cd test_repo > $ git init > $ echo Hello >hi > $ git commit -a -m "C1" > $ git checkout -b A > $ echo Bye >hi > $ git commit -a -m "C2 - A" > $ git checkout - > $ git checkout -b B > $ echo "Bye." >hi > $ git commit -a -m "C3 - B" > $ git checkout - > $ git merge A > $ git checkout B > $ git rebase master > > This shows that some merge conflicts needs resolving. Did I follow > your steps or I missed something? It would be better if you could > reproduce your steps like I did so as to make things more clear to us. > > Regards, > Pranit Bauva -- Benchao Li School of Electronics Engineering and Computer Science, Peking University Tel:+86-15650713730 Email: libenchao@xxxxxxxxx; libenchao@xxxxxxxxxx -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html