Gene flow refers to the transfer of alleles of a gene between different populations. Different populations can be groups of the same species that are separated from each other by natural barriers and also between members of different species.
Examples of transfers between the same species include the flow of genes between groups of humans that were initially separated as they lived on different continents but with the advancement of technology came together. Inter-species gene flow routinely occurs between bacteria and viruses that not only take genes from other species of bacteria and viruses but also contribute to the transfer of genes between the organisms they reside in.
Gene drift on the other hand refers to a change in the number of variations in genes between individuals of a population as the choice between them is a random event. Gene drift by itself does not lead to any sort of improvement in the characteristics of members of a species. Large populations are found to a have a lesser degree of variation in the genetic profile of members while this increases for smaller populations, clearly showing the totally random nature in the transfer of variants.