The expected output in the IDE if you have verbose output enables looks like
Sketch uses 3618 bytes (12%) of program storage space. Maximum is 28672 bytes.
Global variables use 175 bytes (6%) of dynamic memory, leaving 2385 bytes for local variables. Maximum is 2560 bytes.
Forcing reset using 1200bps open/close on port COM14
PORTS {COM1, COM8, COM13, COM14, } / {COM1, COM8, COM13, } => {}
PORTS {COM1, COM8, COM13, } / {COM1, COM8, COM13, COM16, } => {COM16, }
Found upload port: COM16
I have a couple of Arduinos connected (COM8 and COM13 are Nanos, COM14 is a ProMicro, COM1 is a standard Windows port.
Note the line Forcing reset using 1200bps open/close on port COM14. This will reset the ProMicro on the given port. The lines following is where the IDE tries to determine the COM port of the boot loader.
In the first PORTS line, you can see COM14 disappear. In the second PORTS you can see COM16 appear. And you can see at the end of the line that it detected that COM16 is the upload port.
If a normal upload does not work (e.g. because you selected the wrong (but existing) port), you will see something as in the previous post
Sketch uses 3618 bytes (12%) of program storage space. Maximum is 28672 bytes.
Global variables use 175 bytes (6%) of dynamic memory, leaving 2385 bytes for local variables. Maximum is 2560 bytes.
Forcing reset using 1200bps open/close on port COM14
PORTS {COM1, COM8, COM13, COM14, } / {COM1, COM8, COM13, COM14, } => {}
PORTS {COM1, COM8, COM13, COM14, } / {COM1, COM8, COM13, COM14, } => {}
PORTS {COM1, COM8, COM13, COM14, } / {COM1, COM8, COM13, COM14, } => {}
PORTS {COM1, COM8, COM13, COM14, } / {COM1, COM8, COM13, COM14, } => {}
PORTS {COM1, COM8, COM13, COM14, } / {COM1, COM8, COM13, COM14, } => {}
PORTS {COM1, COM8, COM13, COM14, } / {COM1, COM8, COM13, COM14, } => {}
The double tap reset achieves the same as Forcing reset using 1200bps open/close on port COM14 but it is guaranteed to reset the correct device ;).
You can also follow what happens in Windows device manager
Normal operation

Upload mode

I think that that is all that there is to say.