BulkGitCloner – Clone and Pull multiple GIT Repos

2 minutes to read read

I have been struggling for some time to manage multiple GIT repos. Like me there could be multiple cases you need to manage and pull multiple GIT repos. This is the tools which can easily manage and do that. Just define it once and good to go always. Personally for me, its like a daily routine. In the morning, connect and pull all and get all repos at once, without firing pull in cd(ing) each repo and issuing git pull.

Who is it for

This tool can be useful to multiple scenarios.

  • Creating backups (scheduled) for complete code bases.
  • Devops needing to get latest and pull all repos.
  • Pulling all code bases from GIT Hub Enterprise for complete organization.
  • Being updated for child/nested repos.
  • Getting codebase across multiple repos for running static code analysis.

What it does

  • Organization Mode (Enterprise GitHub) – Now you can clone all your enterprise github repositories directly. Just define the hostname of your enterprise github, generate a PAT token and you are good to go. The application will fetch all your repos directly. Settings can be defined to update base configuration each time file is selected.
  • Soft pull – Pull (or clone) all your repositories at once.
  • Hard pull – Reset all local changes, remove obsolete branches and bring your code to latest head on master branch.
  • Secured Credentials Storage – Credentials can now be stored to prevent them entering each time. The password is encrypted by a key string using AES256 bit encryption.
  • Multi Threaded to parallelize work loads. Currently hardcoded to 4. Will try to make it dynamic in next version.
  • Exclude or ignore some repos from list of required.

For all details including usage, summary and latest updates, please refer to git hub repo page: https://github.com/yadavvineet/BulkGitCloner/

Also, in current form, code is very crude. Optimization is in progress, for now its just a working code. PRs are welcome.

Leave a Reply

Your email address will not be published. Required fields are marked *