The G-codes and M-codes you'll actually run into most often, for a quick look-up at the control.
Codes vary between controls
This chart reflects widely used Fanuc-style conventions, which most controls (Haas, Fanuc, and many others) follow closely — but Siemens, Heidenhain, and some older or proprietary controls use different codes for the same functions, and even Fanuc-style controls vary slightly in canned cycle parameters. Always check your specific control's programming manual before running unfamiliar code on a machine.
Modal vs. non-modal codes
Most G-codes are modal — once called, they stay in effect for every following block until a different code in the same group cancels or replaces them, which is why a program doesn't need to repeat G1 on every single line. M-codes and a handful of G-codes (like G28) are non-modal one-shot commands instead.
This is a memory jog, not a programming reference
Canned cycles in particular (G81–G89) take several parameters beyond what's listed here — retract plane, dwell time, peck increment, and more — that vary by control and cycle. Use this chart to recall what a code generally does, then check the actual parameter list before programming a cycle from scratch.