[guided]Fix $x_0\in\mathbb{R}$ and $t\in[0,T)$. Before differentiating along a characteristic on the whole interval, we must justify that such a curve exists. Define the velocity field $a:[0,T)\times\mathbb{R}\to\mathbb{R}$ by
\begin{align*}
a(s,x)=f'(u(s,x)).
\end{align*}
The hypothesis $f\in C^2(I)$ is used here: since $f'$ is $C^1$ and $u$ is $C^1$, the composition $a=f'\circ u$ is a $C^1$ velocity field. Thus the Picard-Lindelöf local existence and uniqueness theorem for ordinary differential equations applies to the initial value problem
\begin{align*}
\gamma(0)=x_0
\end{align*}
and
\begin{align*}
\gamma'(s)=a(s,\gamma(s))=f'(u(s,\gamma(s))).
\end{align*}
It gives a number $\varepsilon>0$ and a $C^1$ characteristic curve $\gamma:[0,\varepsilon)\to\mathbb{R}$ solving this equation for $s\in(0,\varepsilon)$.
Now define the solution value along the local characteristic by $w:[0,\varepsilon)\to I$ with
\begin{align*}
w(s)=u(s,\gamma(s)).
\end{align*}
Because $u$ and $\gamma$ are $C^1$, the one-variable chain rule gives, for $s\in(0,\varepsilon)$,
\begin{align*}
w'(s)=\partial_t u(s,\gamma(s))+\gamma'(s)\,\partial_x u(s,\gamma(s)).
\end{align*}
Substituting the characteristic equation makes this derivative equal to the left-hand side of the quasilinear PDE:
\begin{align*}
w'(s)=\partial_t u(s,\gamma(s))+f'(u(s,\gamma(s)))\,\partial_x u(s,\gamma(s)).
\end{align*}
The PDE holds on $(0,T)\times\mathbb{R}$, so this equality proves $w'(s)=0$ for $s\in(0,\varepsilon)$. We do not claim the PDE at $s=0$; instead, continuity of $w$ extends the constancy to the endpoint $0$. Therefore
\begin{align*}
u(s,\gamma(s))=w(s)=w(0)=u(0,x_0)=u_0(x_0)
\end{align*}
for $s\in[0,\varepsilon)$.
Once the solution value is constant, the characteristic velocity is also constant:
\begin{align*}
\gamma'(s)=f'(u_0(x_0))
\end{align*}
for $s\in(0,\varepsilon)$. Hence the local characteristic is the affine curve $s\mapsto x_0+s f'(u_0(x_0))$.
To reach an arbitrary later time $t<T$, we make the continuation argument explicit. Define $A\subset[0,t]$ by
\begin{align*}
A=\{\tau\in[0,t]: u(s,x_0+s f'(u_0(x_0)))=u_0(x_0) \text{ for every } s\in[0,\tau]\}.
\end{align*}
The local calculation near $0$ proves that $A$ is nonempty. The set $A$ is closed in $[0,t]$: if $\tau_k\in A$ and $\tau_k\to\tau$, then continuity of the map $s\mapsto u(s,x_0+s f'(u_0(x_0)))$ preserves the identity at the limiting time, and the identity on the whole interval $[0,\tau]$ follows by approximating each $s\leq\tau$ with times lying below some $\tau_k$.
Now let $r\in A$ with $r<t$. Put
\begin{align*}
z_r=x_0+r f'(u_0(x_0)).
\end{align*}
Since $r\in A$, we have $u(r,z_r)=u_0(x_0)$. Start the characteristic ODE at time $r$ from the point $z_r$. The velocity field is still $C^1$, so the Picard-Lindelöf local existence and uniqueness theorem for ordinary differential equations gives a local characteristic through $(r,z_r)$. Repeating the chain-rule computation on this shifted time interval shows that the solution value remains $u_0(x_0)$ along that local characteristic. Therefore the velocity on the new segment is again $f'(u_0(x_0))$, and uniqueness forces the segment to be the same affine curve
\begin{align*}
s\mapsto x_0+s f'(u_0(x_0)).
\end{align*}
Thus $A$ is open in $[0,t]$. Since $[0,t]$ is connected and $A$ is nonempty, open, and closed in $[0,t]$, it follows that $A=[0,t]$. Hence
\begin{align*}
u(s,x_0+s f'(u_0(x_0)))=u_0(x_0)
\end{align*}
for every $s\in[0,t]$.[/guided]