Updating an existing layout from its schematic requires KiCad to determine which footprint was previously connected to which symbol to avoid undoing your past work. For this reason every symbol is assigned a unique identifier (timestamp based unique ID). This ID is also tracked by the footprint instance. The alternative option is to use the reference designator assigned to your symbol either by the annotation process or by hand.
Using the ID allows, changing the reference designator of a symbol (say, from R15 to R16) without it having any effect on which footprint represents it. Meaning the footprint will also be updated to reference designator R16 after the update process. This is normally what you want, which is why it is the default option.
So when would i ever need the “update by reference designator option”?
Let’s say you have a board with two duplicated sections (we’ll call them “Left” and “Right”). Left uses references beginning with 100, while Right uses references starting with 200.
You go ahead and lay out Left, placing and routing R101, R102, C101 and U101 and so forth.
Now, rather than doing all that work all over again, you copy and paste those footprints. You then edit R101 to be R201, R102 to be R202, and so forth. Then you do an Update PCB from Schematic with the “Match references” option selected to re-associate all the new footprints with the “Right” symbols. After that you can go back to using the default match method (since Kicad now has the correct associations).
User interface of the update process for KiCad 5.1.5
Disclaimer: Screenshots below are taken in KiCad 5.1.5 (should be equivalent in all 5.1.x versions)
The dialog where you select how this update happens is shown in the screenshot.
“Update footprints” determines if the footprint is changed if you change the footprint field of the symbol inside the schematic. The “delete extra footprint” option ensures that every footprint in the layout has a corresponding symbol (otherwise deleted symbols would leave orphaned footprints).
An overview of the data at play is shown in the next screenshot. Notice that you can not edit the unique id (or timestamp) directly in the layout. It can only be changed by selecting “Re-associate footprints by reference”.