I am following Loring W. Tu in his second edition of 'An introduction to manifolds'. Here is a pdf-copy of the book. On page 87 he defines $C^\infty_p(M)$ as the set of germs of $C^\infty$-functions at $p\in M$. He then defines a derivation as a map $D : C^\infty_p(M) \to \mathbb{R}$. In contrast, half way down the page he defines the partial derivative in coordinates as a map $\partial/\partial x^i|_p : C^\infty(M) \to \mathbb{R}$, and claims that it is easy to check that this is a derivation.
I do not understand this because $\partial/\partial x^i|_p$ cannot be a derivation when it's domain is $C^\infty(M)$ and not $C^\infty_p(M)$. He also casually seems to talk of functions as if they are equivalence classes. To me it seems too simple that the author has mistaken the set of equivalence classes for its elements. Is there a principle regarding equivalence classes or germs that are being applied implicitly that I am missing? Could you explain please?
In general if $\mathcal A$ is a commutative algebra and $M$ is an $\mathcal A$-module, we will say that a linear map $D : \ \mathcal A \to M$ is a derivation if $D(fg)=f Dg + g Df $ for $f, g \in \mathcal A$. Operation $\left. \frac{\partial}{\partial x^i} \right|_p$ satisfies this property, no matter if we consider $C^{\infty}(M)$ or the space of germs as its domain.
Secondly, given an element of $C^{\infty}(M)$ we can always consider its germ at $p$. Even though partial derivative at $p$ was initially defined on functions on $M$, its value actually depends only on the germ at $p$. Moreover given any germ at $p$ you can always extend it to a smooth function on whole $M$ using bump functions, so in the end when evaluating derivatives of any finite order at a point it doesn't make much difference if you work with functions on $M$, functions on some fixed neighbourhood of $p$ or germs at $p$.