Here is an example:
$ git push -u myserver master
Counting objects: 22, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (14/14), don
Git is a content addressable file system. i.e., it takes an object(file, tree, commit) and stores it in files addressable by hashes.
Suppose you make a very small change in the file. Should git store the full file as a different object? Well it does. But occasionally(during push, pull), git computes file changes as deltas and store them instead of full files.
That means, the most recent version of file is stored in full (since it should be available most readily), older version of the same file is just an object containing the difference between the two and so on.
This way git saves space while still able to reconstruct the file for any revision you throw at it.
Now coming to your question:
Counting objects: 22, done.: Git is counting the object related to your commits which you are pushing.
Total 14 (delta 10): Git was able to reduce the number of objects by finding 10 deltas.
reused 0 (delta 0): Git can reuse the delta objects if same exists already. For example if the similar changes might have been introduced in some other file, the delta may be similar and reusable. Here, there was nothing to reuse.
Writing objects: 100% (14/14), 1.89 KiB | 0 bytes/s, done. Here Git is sending (or writing) the objects over the network, and you can see progress and speed statistics as it's doing that.
Hope this helps.