A last-minute server-side bug sneaked in that allowed duplicate contacts to be created in Google. It's now been fixed.
If you have duplicate contacts in Google but none in Address Book, you can clean them up by replacing contact data on Google (Advanced > Replace Data on Google > Contacts), but remember that doing so will wipe out your Gtalk chat lists and group information in Google Contacts.
If you need to clean up duplicates in Address Book first, you can use its built-in feature (Address Book > Card > Look for duplicates) or the more powerful Contacts Cleaner in Spanning Tools for Mac.
How do I know which are the duplicate contacts and which are the real contacts on gmail. I don't want to replace my data on gmail for the reasons you kindly pointed out, however, I'm quite prepared to go through and manually remove the few remaining duplicates that were not sorted out by my pruning of address book.
Posted by: Peter Neal | July 11, 2009 at 05:43 AM
Good question. To quote my esteemed colleague Larry, "The way to deal with that is: after deleting contacts from Google, do a refresh sync from Spanning Sync on the Mac so that things are "merged". In SS2, the easiest way to force a merge sync is to delete ~/L/AS/SS/map-contacts . On SS3, you can Option-click "start over"."
Posted by: Charlie Wood | July 11, 2009 at 12:41 PM