A promise which, if made in a contract and supported by consideration, is legally binding. Even, Denning J felt, if it is not supported by consideration. But that remains a contrarian, off the record, view. See
Then compare with representations and warranties.
In a Nutshell™:
Representation: A representation is a pre-contractual statement of a present fact, the failure of which entitles an innocent party to rescind a contract altogether (i.e. to put itself in the position it would have been had it never undertaken the ghastly affair in the first place)
Warranty: A warranty is a contractual statement of the truth of a present fact, the failure of falsehood entitles the innocent party to sue for damages for breach of contract (to compensate it for the value of the contract had the statement been correct). It also has a specific meaning as a guarantee of merchantability in the context of a “Manufacturer's Warranty”.
This is why so often you see that most laborious of constructions: “representations and warranties” — the combination giving the wronged party the maximum possible range of remedies.
Promise: This, in Horton Hatches the Egg terms, is what you meant when you said, and what you said when you meant. A promise, if offered, accepted and accompanied by consideration, is your legally binding obligation under a contract.
Undertaking: An undertaking, in a contractual context, is really no different from a promise (though a solicitor’s undertaking is a quite different thing). You might characterise it as a specific promise to ensure that someone else does something (rather than the person making the promise itself), but it isn’t generally used that way.
In any other context, therefore, covenants and undertakings are nothing more than fancy words for promises, and any lover of plain English should therefore seek them out and, with extreme prejudice, relieve them of their command.