# Git Developer Guide

## Git Developer Guide

- [Overview](https://gitdeveloperguide.solomonmarvel.com/overview.md): Undergoing Docs Migration
- [Scope of this book](https://gitdeveloperguide.solomonmarvel.com/scope-of-this-book.md)
- [Table of Content](https://gitdeveloperguide.solomonmarvel.com/table-of-content.md)
- [What is Version Control?](https://gitdeveloperguide.solomonmarvel.com/introduction-to-version-control/what-is-version-control.md): Version control is a system that enables the management and tracking of changes to files or documents over time.
- [Overview of git and it's benefits](https://gitdeveloperguide.solomonmarvel.com/introduction-to-version-control/overview-of-git-and-its-benefits.md): Git is a distributed version control system that has revolutionised the way software development teams manage their codebases
- [Setting up Git on Different Platforms](https://gitdeveloperguide.solomonmarvel.com/introduction-to-version-control/setting-up-git-on-different-platforms.md): Git is a distributed version control system that allows you to track changes and collaborate on projects
- [Initialising a new Git repository](https://gitdeveloperguide.solomonmarvel.com/git-fundamentals/initialising-a-new-git-repository.md)
- [Understanding the Git Workflow](https://gitdeveloperguide.solomonmarvel.com/git-fundamentals/understanding-the-git-workflow.md)
- [Committing Changes and Writing Good Commit Messages](https://gitdeveloperguide.solomonmarvel.com/git-fundamentals/committing-changes-and-writing-good-commit-messages.md): Committing changes is a crucial aspect of using Git for version control
- [Viewing and Navigating Commit History](https://gitdeveloperguide.solomonmarvel.com/git-fundamentals/viewing-and-navigating-commit-history.md): In Git, the commit history provides valuable insights into the evolution of a project.
- [Git Basics - Practice Scenarios](https://gitdeveloperguide.solomonmarvel.com/git-fundamentals/git-basics-practice-scenarios.md)
- [Initialising a Git Repository](https://gitdeveloperguide.solomonmarvel.com/git-fundamentals/git-basics-practice-scenarios/initialising-a-git-repository.md): How to initialise a git repository
- [Committing Changes](https://gitdeveloperguide.solomonmarvel.com/git-fundamentals/git-basics-practice-scenarios/committing-changes.md): Committing changes is a fundamental aspect of using Git, as it allows you to save and track the progress of your project.
- [Exploring Commit History](https://gitdeveloperguide.solomonmarvel.com/git-fundamentals/git-basics-practice-scenarios/exploring-commit-history.md): The commit history provides a valuable record of changes made to a repository, allowing developers to track progress, understand the evolution of the codebase, and collaborate effectively.
- [Amending and Undoing Commits](https://gitdeveloperguide.solomonmarvel.com/git-fundamentals/git-basics-practice-scenarios/amending-and-undoing-commits.md): When commits aren't right, what do we do?
- [What is Git Branch?](https://gitdeveloperguide.solomonmarvel.com/working-with-git/what-is-git-branch.md): In Git, branches are an essential feature that allow you to diverge from the main line of development and work on different features, bug fixes, or experiments without affecting the main codebase.
- [Creating and Switching Between Branches](https://gitdeveloperguide.solomonmarvel.com/working-with-git/creating-and-switching-between-branches.md)
- [Merging Branches and Resolving Conflicts](https://gitdeveloperguide.solomonmarvel.com/working-with-git/merging-branches-and-resolving-conflicts.md): Merging branches is a fundamental concept in Git that allows developers to combine changes from different branches into a single branch.
- [Best Practices for Branch Management](https://gitdeveloperguide.solomonmarvel.com/working-with-git/best-practices-for-branch-management.md): Branch management is a crucial aspect of any software development workflow as it allows for parallel development, isolation of features, and controlled releases.
- [Git Workflows](https://gitdeveloperguide.solomonmarvel.com/working-with-git/git-workflows.md): Git workflows provide a set of rules and guidelines for using branches effectively in a collaborative environment. Here are two popular Git workflows
- [Git Log](https://gitdeveloperguide.solomonmarvel.com/working-with-git/git-log.md): Git provides a powerful command called git log that allows you to visualise the branch history and explore the commits made in a repository
- [Git Stash](https://gitdeveloperguide.solomonmarvel.com/working-with-git/git-stash.md): Git stash provides a convenient way to save your work in progress and retrieve it later when needed.
- [Working with Git - Practice Scenarios](https://gitdeveloperguide.solomonmarvel.com/working-with-git/working-with-git-practice-scenarios.md)
- [Creating and Switching Between Branches](https://gitdeveloperguide.solomonmarvel.com/working-with-git/working-with-git-practice-scenarios/creating-and-switching-between-branches.md): In software development, using branches is a common practice to isolate different features or bug fixes from the main codebase
- [Merging Branches and Resolving Conflicts](https://gitdeveloperguide.solomonmarvel.com/working-with-git/working-with-git-practice-scenarios/merging-branches-and-resolving-conflicts.md): Let's illustrate a scenario where two branches have conflicting changes
- [Branching Strategies in a Team Project](https://gitdeveloperguide.solomonmarvel.com/working-with-git/working-with-git-practice-scenarios/branching-strategies-in-a-team-project.md): In a collaborative software development project, it is crucial to have a well-defined branching strategy to ensure smooth collaboration, efficient development, and effective release management.
- [Rolling Back to a Previous Version](https://gitdeveloperguide.solomonmarvel.com/working-with-git/working-with-git-practice-scenarios/rolling-back-to-a-previous-version.md)
- [Experimenting with Feature Branches](https://gitdeveloperguide.solomonmarvel.com/working-with-git/working-with-git-practice-scenarios/experimenting-with-feature-branches.md)
- [Working with Stash](https://gitdeveloperguide.solomonmarvel.com/working-with-git/working-with-git-practice-scenarios/working-with-stash.md)
- [Cloning a Repository from Remote](https://gitdeveloperguide.solomonmarvel.com/working-with-remote-repositories/cloning-a-repository-from-remote.md): Let's explore the process of cloning a remote repository to your local machine
- [Pushing and Pulling Changes to and from Remote Repositories](https://gitdeveloperguide.solomonmarvel.com/working-with-remote-repositories/pushing-and-pulling-changes-to-and-from-remote-repositories.md)
- [Collaborative Workflows - Forking, Branching, and Pull Requests](https://gitdeveloperguide.solomonmarvel.com/working-with-remote-repositories/collaborative-workflows-forking-branching-and-pull-requests.md): Collaborative workflows are essential when working on projects with multiple contributors
- [Resolving Conflicts in a Collaborative Environment](https://gitdeveloperguide.solomonmarvel.com/working-with-remote-repositories/resolving-conflicts-in-a-collaborative-environment.md)
- [Collaborating with Git - Practice Scenarios](https://gitdeveloperguide.solomonmarvel.com/working-with-remote-repositories/collaborating-with-git-practice-scenarios.md)
- [Cloning a Remote Repository](https://gitdeveloperguide.solomonmarvel.com/working-with-remote-repositories/collaborating-with-git-practice-scenarios/cloning-a-remote-repository.md)
- [Pushing and Pulling Changes](https://gitdeveloperguide.solomonmarvel.com/working-with-remote-repositories/collaborating-with-git-practice-scenarios/pushing-and-pulling-changes.md)
- [Collaborative Workflow with Forking and Pull Requests](https://gitdeveloperguide.solomonmarvel.com/working-with-remote-repositories/collaborating-with-git-practice-scenarios/collaborative-workflow-with-forking-and-pull-requests.md)
- [Resolving Conflicts in a Pull Request](https://gitdeveloperguide.solomonmarvel.com/working-with-remote-repositories/collaborating-with-git-practice-scenarios/resolving-conflicts-in-a-pull-request.md)
- [Aliases and Custom Configurations](https://gitdeveloperguide.solomonmarvel.com/advanced-git-features/aliases-and-custom-configurations.md)
- [Working with Tags and Releases](https://gitdeveloperguide.solomonmarvel.com/advanced-git-features/working-with-tags-and-releases.md)
- [Rewriting Commit History with Interactive Rebase](https://gitdeveloperguide.solomonmarvel.com/advanced-git-features/rewriting-commit-history-with-interactive-rebase.md)
- [Utilising Git Hooks for Automation](https://gitdeveloperguide.solomonmarvel.com/advanced-git-features/utilising-git-hooks-for-automation.md)
- [Advanced Git Features - Practice Scenarios](https://gitdeveloperguide.solomonmarvel.com/advanced-git-features/advanced-git-features-practice-scenarios.md)
- [Creating Custom Git Aliases](https://gitdeveloperguide.solomonmarvel.com/advanced-git-features/advanced-git-features-practice-scenarios/creating-custom-git-aliases.md): Git aliases are a powerful feature that allow you to create shortcuts for frequently used Git commands
- [Working with Tags and Releases](https://gitdeveloperguide.solomonmarvel.com/advanced-git-features/advanced-git-features-practice-scenarios/working-with-tags-and-releases.md)
- [Rewriting Commit History with Interactive Rebase](https://gitdeveloperguide.solomonmarvel.com/advanced-git-features/advanced-git-features-practice-scenarios/rewriting-commit-history-with-interactive-rebase.md)
- [Using Git Hooks for Automated Testing](https://gitdeveloperguide.solomonmarvel.com/advanced-git-features/advanced-git-features-practice-scenarios/using-git-hooks-for-automated-testing.md): One effective way to achieve this is by leveraging Git hooks, which are scripts that can be triggered at specific points in the Git workflow.
- [Managing a Project with Multiple Contributors](https://gitdeveloperguide.solomonmarvel.com/git-in-real-world/managing-a-project-with-multiple-contributors.md)
- [Integrating Git with Continuous Integration, Continuous Deployment (CI, CD)](https://gitdeveloperguide.solomonmarvel.com/git-in-real-world/integrating-git-with-continuous-integration-continuous-deployment-ci-cd.md)
- [Versioning Assets with Git LFS (Large File Storage)](https://gitdeveloperguide.solomonmarvel.com/git-in-real-world/versioning-assets-with-git-lfs-large-file-storage.md)
- [Deploying a Web Application using Git](https://gitdeveloperguide.solomonmarvel.com/git-in-real-world/deploying-a-web-application-using-git.md): In this detailed explanation, we will walk through the process of deploying a web application using Git
- [Git In Real World - Practice Scenarios](https://gitdeveloperguide.solomonmarvel.com/git-in-real-world/git-in-real-world-practice-scenarios.md)
- [Managing a Project with Multiple Contributors](https://gitdeveloperguide.solomonmarvel.com/git-in-real-world/git-in-real-world-practice-scenarios/managing-a-project-with-multiple-contributors.md)
- [Integrating Git with CICD Pipelines](https://gitdeveloperguide.solomonmarvel.com/git-in-real-world/git-in-real-world-practice-scenarios/integrating-git-with-cicd-pipelines.md)
- [Versioning Assets with Git LFS](https://gitdeveloperguide.solomonmarvel.com/git-in-real-world/git-in-real-world-practice-scenarios/versioning-assets-with-git-lfs.md)
- [Deploying a Web Application using Git](https://gitdeveloperguide.solomonmarvel.com/git-in-real-world/git-in-real-world-practice-scenarios/deploying-a-web-application-using-git.md)
- [Git Troubleshooting](https://gitdeveloperguide.solomonmarvel.com/git-troubleshooting.md)
- [Common Mistakes and Pitfalls When Using Git](https://gitdeveloperguide.solomonmarvel.com/git-troubleshooting/common-mistakes-and-pitfalls-when-using-git.md)
- [Undoing Changes with Git - Reverting and Resetting](https://gitdeveloperguide.solomonmarvel.com/git-troubleshooting/undoing-changes-with-git-reverting-and-resetting.md)
- [Recovering Lost Commits or Branches](https://gitdeveloperguide.solomonmarvel.com/git-troubleshooting/recovering-lost-commits-or-branches.md)
- [Dealing with Repository Corruption or Other Issues](https://gitdeveloperguide.solomonmarvel.com/git-troubleshooting/dealing-with-repository-corruption-or-other-issues.md)
- [Git Best Practices and Tips](https://gitdeveloperguide.solomonmarvel.com/git-best-practices-and-tips.md): Writing clean and readable code is essential for maintaining a healthy codebase and collaborating effectively with other developers.
- [Creating efficient git workflows: writing clean code for faster reviews](https://gitdeveloperguide.solomonmarvel.com/git-best-practices-and-tips/creating-efficient-git-workflows-writing-clean-code-for-faster-reviews.md)
- [The importance of clean code in collaborative development](https://gitdeveloperguide.solomonmarvel.com/git-best-practices-and-tips/the-importance-of-clean-code-in-collaborative-development.md)
- [Significance of consistent naming conventions & coding Standards](https://gitdeveloperguide.solomonmarvel.com/git-best-practices-and-tips/significance-of-consistent-naming-conventions-and-coding-standards.md)
- [Good code documentation for better git workflows](https://gitdeveloperguide.solomonmarvel.com/git-best-practices-and-tips/good-code-documentation-for-better-git-workflows.md)
- [Writing meaningful git commit messages](https://gitdeveloperguide.solomonmarvel.com/git-best-practices-and-tips/writing-meaningful-git-commit-messages.md)
- [Atomic commits in git & it's benefits for software teams](https://gitdeveloperguide.solomonmarvel.com/git-best-practices-and-tips/atomic-commits-in-git-and-its-benefits-for-software-teams.md)
- [Structuring code & managing dependencies for better git workflows](https://gitdeveloperguide.solomonmarvel.com/git-best-practices-and-tips/structuring-code-and-managing-dependencies-for-better-git-workflows.md)
- [Git branching strategies for software teams](https://gitdeveloperguide.solomonmarvel.com/git-best-practices-and-tips/git-branching-strategies-for-software-teams.md)
- [Conclusion & Next Steps](https://gitdeveloperguide.solomonmarvel.com/conclusion-and-next-steps.md)
- [Recap of Key Concepts and Commands](https://gitdeveloperguide.solomonmarvel.com/conclusion-and-next-steps/recap-of-key-concepts-and-commands.md)
- [Further Resources for Expanding Git Knowledge](https://gitdeveloperguide.solomonmarvel.com/conclusion-and-next-steps/further-resources-for-expanding-git-knowledge.md)
- [Encouragement and Tips for Continued Learning and Practice](https://gitdeveloperguide.solomonmarvel.com/conclusion-and-next-steps/encouragement-and-tips-for-continued-learning-and-practice.md)
- [License Considerations](https://gitdeveloperguide.solomonmarvel.com/license-considerations.md)
