I've had git behaviour that I quite didnt understand:
I have production branch B1.
git checkout B1
git checkout -b B2
I work on a solution, merge it with B1 localy with
git checkout B2
git rebase B1
git checkout B1
git merge B2
git branch -d B2
Then I do the same routine - create branch B3 from B1, work on B3, and merge with B1. Now multiple merge conflicts occured (literaly between every single commit of B2). So I rebased and merged them same as I did with B2. Code pulled and pushed gratefully, git status showed no commits behind on B1 or B3.
Later, when my colleague pulled B1, he faced all those merge conflicts all over again. A total nightmare, that I though shouldn't happen.
Does anybody know how those merge conflicts could have been moved to remote without the commits that resolved them? I'd like to recall what (possibly terrible) mistake I've done not to repeat it again ^^
___edit The story form console:
git checkout -b B2
git add file1
git commit -m "b2c1"
git rebase B1
git add file1
git commit -m "b2c2"
git push
git rebase B1
git checkout B1
git pull
git checkout B2
git rebase B1
git add file1
git commit -m "b2c3"
git rebase B1
git merge B1
git push B1
git checkout B1
git pull
git merge B2
git push
git branch --merged master
git branch -d B2
git checkout -b B3
git pull
git add file1
git commit -m "b3c1"
git push
git rebase -i HEAD~5
git push -f
git add file1
git commit -m "b3c2"
git add file2 file3 file4
git commit -m "b3c3"
git stash
git pull
git push
git checkout B3
git stash push
git stash save
git stash apply
git checkout B3
git rebase B1
git checkout -- .
git checkout B1
git merge B3
git push
something along those lines, I had to sqeeze many more line cause it otherwise would be a 200/400 line log.