Hi Peter,
The refresh basically imports all the source code back into the PBLs, which is automatically done when you do a pull in PB. But if you have used another tool like TortoiseGit and pulled, reverted, or updated the source code in some other ways without PB knowing it, you need to do a refresh in PB to make sure the changes are imported back into the PBLs, so you will see the changes in PB IDE and won't be working on the old code and overwrite the changes you have just made outside of PB.
Another place you need to use refresh is when a new developer connects to the workspace for the first time. As the PBLs he downloaded are most likely out of sync (PBLs are normally not updated after the initial setup), the refresh will imports all the updated source code to the downloaded PBLs. This should have been taken care of by PB but currently the developer need to do it manually.
Regards,
Tom Jiang