Welcome to the comprehensive GitHub tutorial tailored for machine learning researchers and data scientists, with a special focus on bioinformatics and computational biology. This project is designed to guide you from the fundamentals of version control with Git to advanced collaboration workflows on GitHub, all within an interactive, hands-on environment.
All tutorials are provided as Jupyter notebooks and are fully compatible with Google Colab, allowing you to learn and practice without any local installation.
This tutorial series will help you:
- Master Version Control: Understand and use Git for managing your research projects.
- Collaborate Effectively: Learn GitHub workflows for team-based projects.
- Embrace Reproducibility: Adopt best practices for creating reproducible research.
- Manage ML Experiments: Organize and track your machine learning models and experiments.
- Handle Large Data: Learn strategies for versioning large datasets and model files.
The tutorial is organized into modules, each covering a specific set of topics. You can follow the modules sequentially or jump to the topics that interest you most.
| Module | Topic | Notebooks |
|---|---|---|
| 01-getting-started | Introduction to Git and GitHub | 01_installation_and_setup.ipynb 02_git_vs_github.ipynb 03_ssh_keys_and_authentication.ipynb |
| 02-basic-commands | Essential Git Commands | 01_init_and_clone.ipynb 02_staging_and_committing.ipynb 03_viewing_history.ipynb |
| 03-branching-basics | Working with Branches | 01_understanding_branches.ipynb 02_creating_and_switching_branches.ipynb 03_merging_basics.ipynb |
| Module | Topic | Notebooks |
|---|---|---|
| 04-github-workflow | Working with GitHub | 01_push_and_pull.ipynb 02_forking_and_cloning.ipynb 03_pull_requests.ipynb |
| 05-collaboration | Team Collaboration | 01_code_reviews.ipynb 02_resolving_conflicts.ipynb 03_team_workflows.ipynb |
| 06-github-features | GitHub Advanced Features | 01_issues_and_projects.ipynb 02_github_actions.ipynb 03_github_pages.ipynb |
| Module | Topic | Notebooks |
|---|---|---|
| 07-reproducibility | Reproducible Research | 01_readme_and_documentation.ipynb 02_licenses_and_citations.ipynb 03_environment_management.ipynb |
| 08-large-files | Managing Large Data | 01_gitignore_patterns.ipynb 02_git_lfs.ipynb 03_data_versioning_tools.ipynb |
| 09-ml-workflows | ML Experiment Tracking | 01_model_versioning.ipynb 02_experiment_tracking.ipynb 03_ml_pipelines.ipynb |
| Module | Topic | Notebooks |
|---|---|---|
| 10-advanced-git | Advanced Git Techniques | 01_rebasing.ipynb 02_cherry_picking.ipynb 03_git_hooks.ipynb |
| 11-troubleshooting | Common Issues and Solutions | 01_undoing_changes.ipynb 02_fixing_mistakes.ipynb 03_recovery_techniques.ipynb |
| 12-case-studies | Real-World Examples | 01_bioinformatics_pipeline.ipynb 02_ml_project_structure.ipynb 03_collaborative_paper.ipynb |
- Click on any notebook link in the table above or the Colab badge at the top
- The notebook will open directly in Google Colab
- You can run the cells interactively and follow along with the tutorial
- No installation required!
If you prefer to work locally:
git clone https://github.com/melhzy/github_tutorial.git
cd github_tutorial
jupyter notebook- Basic familiarity with command line interfaces (helpful but not required)
- A GitHub account (free): https://github.com/signup
- Enthusiasm to learn!
Found an issue or want to improve a tutorial? Contributions are welcome! Please feel free to:
- Open an issue to report bugs or suggest improvements
- Submit a pull request with fixes or enhancements
- Share feedback on your learning experience
This project is licensed under the MIT License - see the LICENSE file for details.
This tutorial series is designed for researchers who want to apply modern software development practices to their scientific work. Special thanks to the open-source community for making tools like Git, GitHub, and Jupyter available to everyone.
For questions or feedback, please open an issue in this repository.
Happy Learning! 🚀