Tracking the progeny of single cells is necessary for building lineage trees that recapitulate processes such as embryonic development and stem cell differentiation. In classical lineage tracing experiments, cells are fluorescently labelled to allow identification by microscopy of a limited number of cell clones. To track a larger number of clones in complex tissues, fluorescent proteins are now replaced by heritable DNA barcodes that are read using next-generation sequencing. In prospective lineage tracing, unique DNA barcodes are introduced into single cells through genetic manipulation (using, for example, Cre-mediated recombination or CRISPR-Cas9-mediated editing) and tracked over time. Alternatively, in retrospective lineage tracing, naturally occurring somatic mutations can be used as endogenous DNA barcodes. Finally, single-cell mRNA-sequencing datasets that capture different cell states within a developmental or differentiation trajectory can be used to recapitulate lineages. In this Review, we discuss methods for prospective or retrospective lineage tracing and demonstrate how trajectory reconstruction algorithms can be applied to single-cell mRNA-sequencing datasets to infer developmental or differentiation tracks. We discuss how these approaches are used to understand cell fate during embryogenesis, cell differentiation and tissue regeneration.