CVS uses tags for lots of things.
Git doesn't.
Document that, so people may understand.
diff --git a/Documentation/cvs-migration.txt b/Documentation/cvs-migration.txt
--- a/Documentation/cvs-migration.txt
+++ b/Documentation/cvs-migration.txt
@@ -230,3 +230,33 @@ that contain this changed "if" statement
[ Side note. This option is called "--pickaxe-all" because -S
option is internally called "pickaxe", a tool for software
archaeologists.]
+
+
+
+Tagging, Branching and Merging
+------------------------------
+
+In CVS, you need tags for three different (and conflicting) use cases:
+
+* Mark the state of you repository at a given point in time.
+
+ "This is version 0.2."
+
+* Name a branch, i.e. semi-separate line of development.
+
+ "I'm now working on what's going to be version 0.3."
+
+* Remember where you last merged from so that you won't mess up your
+ changes later.
+
+ "Did we integrate that important bugfix from 0.2.1 into 0.3 yet?"
+
+
+Git has different features for each of these uses.
+
+* You mark the current (actually, last-checked-in) state with "git tag".
+
+* You start a new branch with "git checkout -b <name>".
+
+* Git keeps track of what-got-merged-to-where internally.
+