There are 2 aspects of the software integration (be it continuous or not):
- performing the technical steps to integrate multiple changes - which is what you're referring to in the git-based environments
- checking the quality of the integrated code - in the traditional CI methodology this is what Jenkins and other CI tools do
Jenkins won't technically do the integration steps itself, AFAIK it is not capable of doing that. Its operation is only triggered after the technical integration steps are completed, typically by the developers (in your case after you git commit
and git push
your changes to origin).
There is a different kind of CI tools out there, the gating-commits ones, which actually perform the technical integration, run the QA verifications on the result and, only on success of the verification, they also merge the result into origin. They effectively do the entire software integration work and are thus capable of guaranteeing no QA regressions in the end result.