One of the two main ways of integrating changes from one branch into another, in git, is to do a merge. The flag --no-ff is used in the context of performing a git merge operation; it stands for 'no fast forward'.
To understand this flag properly, the notion of merging a branch - doing it in a fast-forward way, and otherwise - should become clear. This article: ariya.ofilabs.com/2013/09/fast-forward-git-merge.… ... explains the difference in a succinct way.
Bonus: The other main way is to do a rebase Check this out: git-scm.com/book/en/v2/Git-Branching-Rebasing