GitHub and UE4 Collaboration

So a few friends and myself are working on a project. The best way I have found to not mess everything up, would be source control. However, we are using GitHub for this, and we are either not using it correctly or something is off.

1.) We use the source control option from UE4 in order to control and “checkout” the content. However, its not actually locking anyone from using it. I am unsure if this is how it is supposed to work, but my friend is working on a building, and I am still able to modify this. So I guess the question is, how does this work?

2.) It seems to happen that for awhile, there is no issues committing and issuing pull requests. But eventually, all of us keep getting an error that we are “x behind” the origin. The moment this happens, we are unable to fix it and seem to just have to delete the .git and reclone. What exactly is the proper workflow while doing all of this in order to not keep getting behind? The process we go through is commit changes, pull request, after it is accepted go ahead and sync, switch from your branch to master and sync, then go back to your own branch. We are also using a branch of the master for each of us. Is this correct way of doing it? We are trying to use the GUI as opposed to command line.

Thanks in advance!