The main approach is to use a series of very fine abrasives and glass polishes. The problem with this strategy is that it is very time consuming to polish glass and takes a considerable amount of skill. A non-professional will typically just end up with a worse result.
I use a different strategy as follows:
(1) clean the windshield
(2) clay the windshield; it is absolutely essential all particles be completely removed
(3) use a pad or paper towel that is very slightly humid and cake table salt onto it, then rub the windshield with it hard
What this does is smooth the glass, not scratch it. Glass is actually amorphous; the salt basically pushes the glass and smoothes it out without scratching the glass. Salt is too soft and friable to scratch glass which is why this works. From a technical point of view, this is called "burnishing," not polishing.
Once again you must thoroughly clay the windshield first; if you fail to do this you will scratch it up much worse.