This is what I did when I got married to change the last name.
I was on H1 before getting married.
1. Go to local INS office. Ask for the form for filing 'change in the name'. You will need to tell the reason why you are changing name. Fill up that form. You may need supporting documents (in my case marriage certificate).
2. INS gives you receipt and sends you new SSN card with new name. (SSN will be unchanged); may be in less than a month.
3. From name, it looks like you are from india.
So, go to web site of the Indian Consulate and get all the information (for getting new passport). And send the documents to them. You will get new passport with new name along with the old passport with old name attached, in less than a month. I got it in 2 weeks.
For me to do everything I did, it took less than 2 months and it was easy.
But look at your GC timing. I think it is better to ask your lawyer before doing this. I did before even filing for I-140. So, name change in GC was not a problem.
Hope this is helpful.