As the feature’s name suggests, you can have shelves of your code set aside the same way you use real shelves. In a library, when you shelve a book to read another or to write a paper, others now can read it. The difference in source control is that it allows more than one person to unshelve the same book at the same time. That’s because ultimately, what they are getting is a copy of it.
One of the benefits of shelving is to make you focus on accomplishing more important tasks without the need to worry about your pending changes. Another benefit is sharing your shelved code; teammates can unshelve your code into their workspaces and use it. And so, you don’t have to check-in incomplete code to let a teammate get it, not anymore.
For more details, please read: Working with Source Control Shelvesets