Moim zdaniem najlepszym z 3 wymienionych jest GitLab. Tak jak napisał @Ehlert różnicy zbytnio nie ma dla większości aplikacji, ale ja się bardziej kierowałem wyglądem i chęcią spróbowania czegoś mniej popularnego.
Co do GitHub'a to używam go jako mirror'ów do projektów na GitLab'ie, ale już się przekonałem, że przy większym zainteresowaniu ludzi łatwo, żeby GitHub Ci błędnie oflagował konto, a niestety na odpowiedź support'u trochę trzeba czekać, więc Twoja aplikacja mogłaby po prostu zniknąć na kilka dni.
BitBucket'a niestety nie miałem okazji spróbować z powodu błędu przy rejestracji, więc się nie wypowiem.
Podsumowując ja bym wybrał na Twoim miejscu GitLab'a, ale przy mniejszej aplikacji dużej różnicy nie będzie.