This post explains the different deployment options available in Sitecore and differences between them. Deployment is nothing but moving Sitecore item changes from one instance of Sitecore to another instance. To do this, in Sitecore we have two different options. 1. Packaging 2. Serialization
Creating package & Installing package: Follow this post for complete set of steps to be followed to create a package and then installing this packge in Sitecore. - Deployment in Sitecore using packaging
Serializing and Deserializing items in Sitecore: Follow this post for complete set of steps to be followed to create apacgae and then installing this packge in Sitecore. - Serialization and deserialization in Sitecore
Packaging vs Serialization
For package creation in Sitecore there is a size limit of 2GB. You cannot create a package of more than 2GB size. If the package exceeds 2GB then it has to be done in multiple packages.
There is no size limit for serializing the Sitecore items.
After you deploy the Sitecore items to target instance and then made some changes to most of the items. Now if you want to revert the changes made to some of the items in Sitecore to the previous version (as they are when they are deployed), you cannot revert using the Package option. If you install package again then you might loose the changes which you don't want to. So there is no option to revert selected items to the previous version using Packaging.
Using Serialization we can achieve this perfectly. There are options 'revert item', 'revert tree', using which we can either revert a single item or an item tree. This revert option will revert the Sitecore items from disk ie., from the serialization folder.
Please comment if you know any more differences between Packaging and Serialization in Sitecore