I think, this is it.
(please correct me if I am wrong here)
for understanding (high level) --- >
git ff means, 2 scenerios ---> you either have new files to add from local dir to staging/ |--> you have 0 new files to add from local dir to staging area
-->executing fast forward will start pointing your local dir and staging area to repo's ( available on github repo) latest version.
-- > it will skip adding your files that were lying in your local dir before you did pull ff. It will not add any files from 'your' local working dir in your 'staging area'.
(in case you had new files in local directory)
--> it will skip adding anything from your local working dir in your 'staging area'
(in case you had/have 0 new files in local directory)
Pull rebase --- >>
pull rebase, on other hand will simply, add the files, that were lying in your local dir. before executing pull rebase.
and... and.. it will point to new branch. So, original branch (github original repo) is not affected by your files.
rebase means, "base me up with last 'common' conifuration/set up" and include and add other's files and files in my local dir (that I was created before executing pull rebase)
for understanding better, see answer by @torek and @aquaraga above.