How to identify which bootloader is currently installed?

How can I tell which bootloader is already installed on,say, an Uno?

I found this: https://gist.github.com/jcw/1985789

but it seems out of date.

You can use the Gammon Board Detector http://www.gammon.com.au/forum/?id=11633 to get the MD5 sum of bootloader and do some comparison of the bootloader you read from the chip using ISP programming against the various bootloaders in the Arduino IDE folder [arduino install dir]/hardware/arduino/avr/bootloaders.

Or since you would need to use an ISP programmer to do that anyway, you could just burn a known (and your preferred) bootloader onto the chip. Nick Gammon also has a sketch for burning bootloaders. In fact, most of the heavy-duty stuff I want to know about Arduino I Google with Gammon in the search blank. For example when I want to know about installing bootloaders I Google "Gammon Bootloader", when I want to know about using timers I Google "Gammon Timers", etc. Smart cookie, he is.

Recent version of Optiboot have a version number stored in the last two bytes of flash. 4.4 for the Arduino-distributed version, 6.2 for the latest from github. (don't forget that the high byte appears second in listings.) Unfortunately, special-built versions are unlikely to have set the version :-(

ATmegaboot never appeared much on Unos, but shows up on Nanos and other 3rd-party boards. You can tell it's not optiboot by the size, encoded in the device fuses. (atmegaboot for 328 is 2k rather than 512 bytes.) There are a couple versions of atmegaboot (atmegaboot, adaboot, other modifications) that I don't think are distinguishable except by comparing the .hex files.

(Note that a recent compilation of any bootloader may not match the .hex file shipping on products, due to use of different versions of compilers.)