Proper source control usage

I’ve decided to try using source control (github) on the new project. I’m going to use both engine and project on the C++ level. So I’ve forked UE4 on the github. Project setup was described in the following thread.

The question is how do I use source control then? If I change the engine code then I have to submit the changes through the external source control program as far as I understand. But how do I manage project (i.e. game)? Should I use external source control (I’m using SourceTree with github) or use in-editor source control? I see SVN, Perforce and Git (beta) in the editor.

What the the best practices here?