A publish action will commit the changes made during the current session to the management database.
You can potentially publish multiple times before you perform an Install Policy, which is required for the changes to take effect on the Security Gateway.
Publish only applies to the session you are currently on, but you can "take over" an existing unpublished session and publish that.
Install policy takes the current management database with all changes published to that point (by any session) and pushes to the specified gateway.