Do the terms vectors/covectors in physics refer to the same thing as in math (linear algebra/differential geometry) In math, given a vector space $V$ on $F$, a vector is an element $v\in V$ and a covector is an element $v^*\in V^*$ where $V^*$ is defined as $V\to F$. Moreover, in differential geometry, the term "tangent vector" and "tangent covector" have the same meaning where $V=T_xS$ is the tangent space at some point $x$ on a manifold $S$.
In particular, the gradient of a function $f$ at $x$ is a tangent vector $\nabla f(x)$ such that for all vectors $v\in V$, the equation $v\cdot \nabla f(x)=D_xf(v)$ holds. So the total derivative $D_xf$ is a covector, and the gradient $\nabla f(x)$ is a vector. (This is also stated on the wikipedia page on the gradient).
However, in the wikipedia page on covariance and contravariance of vectors, it states that the gradient is covariant, and is therefore a cotangent vector or covector. Moreover, in that page, "covector" links to the page on cotangent space in differential geometry.
I'm confused by this. Is the physics page on covariance and contravariance just inconsistent? Am I missing something?
 A: This ambiguity generally arises from the fact that you can understand "vector" both as the specific idea of a "column vector", or as "element of any vector space".
Dual spaces being vector spaces (additive abelian group, provided with a scalar field and a scalar multiplication), their elements are "vectors" in the second meaning, but not in the first. When taking the first definition of "vector" (column vector), the elements of the dual are "row vectors", or "covectors". Of course, this picture is too simplified ! This is in reality a matter of perspective, since you could very well take a dual space (or more precisely, a vector space of your choice which just so happens to be the dual of some other space) as your starting point, consider its vectors to  be your column vectors, and consider its dual (which would be the double dual of this other space) to contain the row vectors. Confused yet ?
The important thing to keep in mind is that for finite dimensions, any vector space is "naturally isomorphic" to its double-dual; but not "naturally isomorphic" to its dual, just "isomorphic". This is technical (category theory) parlance to express the idea that to define an isomorphism between a vector space and its double-dual, you don't need a basis; but you DO need a basis to define the isomorphism between a vector space and its (simple) dual. This means that taking a vector space and its dual enforces a distinction between these two, but no more than that (ie, the double dual is the same as the base space, the triple dual same as the simple dual, etc): one will serve as the set of "bra" and the other will serve as the set of "ket"; but it doesn't really matter how you go about this choice, since the natural isomorphism for the double-dual makes the dualization functor act like an involution, and thus there is a mirror-like symmetry between the two. You just need to choose an orientation to your real line to distinguish positive from negative numbers: there are no "double negative" numbers, these are just regular ol' positive numbers.
For infinite dimensional vector spaces, things are different. The dualization functor never leads to an isomorphism between its input space and its output space (well, in the vector space sense, but do note that notions of dimension differ depending on the branch of math: https://kconrad.math.uconn.edu/blurbs/linmultialg/dualspaceinfinite.pdf ). Instead, you will always have injections of the infinite vector space into its dual, but never a surjection. To caricature, dualization of an infinite vector space "makes it grow bigger".
Another problem adding to the ambiguity is the issue that physics has often not cared about mathematical rigor that much (mostly, what is the space in which such and such element resides); so long as the computation got to the right result, as verified by measurement, things are fine. There's this joke about a physicist computing the result of an indefinite integral, saying "what's the issue ?" and making a mathematician tear his hair out screaming, to give you an idea.
This is why you'll see BOTH the dot product of a gradient (column vector) and a (column) vector, AND a gradient acting (like a linear functional/covector) on a (column) vector.
Given this mountain of bulls\$*t, conflicting conventions, etc, I have opted, personally, to see the gradient as the covector. Why this decision ? Because this generalizes nicely to the Jacobian: the Jacobian is "vertical pile of gradient row vectors"; and that's not a caricature, it is precisely that, formally speaking. Put in another way, the gradient is just the Jacobian of a function $\Bbb R^n \to \Bbb R^1$, and that makes it be a row vector. Of course, this is relative to what I said before about whether you're choosing your base space to have row vectors or column vectors, since nothing's stopping you from calculating a gradient over covectors, which would make the gradient a column vector with my logic... But I mean, this would still be coherent, "a gradient of a covector" would be the Jacobian of a function from $\Bbb R \to \Bbb R^n$, and thus a column vector.
Side note, in physics, what is covariant or contravariant is dictated relative to two things: 1, what is invariant (your concrete physical entity/vector being measured); 2, your starting point, ie, the basis of your vector space in which you express this physical entity/vector, which is decided to be covariant by default. Once that is set, it is very easy to deduce that components of your entity vector are contravariant; the basis covectors of the dual are contravariant; and the components of the covectors are covariant.
