It's been a few days, so I will finish off your solution so we can move to something new
![Smile :) :)](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
. You were very close, and my method started out essentially the same as yours.
Since we have f(x+1)=f(x)+1, we have f(x+m)=f(x)+m for all integers m.
Since we also have f(0)=1, we know that f(m)=m+1 for all integers m.
Now for a nonzero integer n, we have
f(n.(m/n))=f(n)f(m/n)-f(n+(m/n))+1 (**)
=> m+1=f(m)=(n+1)f(m/n)-(n+f(m/n))+1.
solving this equation for the "unknown" f(m/n) gives:
f(m/n)=(m+n)/n=(m/n)+1.
So f(x)=x+1 for all rational x.
(It is important we do things this way, because I suspect it might not be the case that every nonconstant REAL solution to the functional equation is equal to x+1).