Git is a distributed version control system primarily used for tracking changes in source code during software development. It was created by Linus Torvalds, the same person who created the Linux operating system. Git allows multiple developers to collaborate on a project by providing a mechanism to manage and merge different versions of code.
At its core, Git operates by creating a repository, which is a collection of files and their revision history. Developers can make changes to files in the repository and Git tracks these changes over time, creating a history of commits. Each commit represents a snapshot of the project at a specific point in time.
Git has several key features that make it popular among developers:
1. Distributed: Git uses a distributed architecture, which means that each developer has a complete copy of the repository on their local machine. This allows developers to work offline and independently, making it easier to manage branches and merge changes.
2. Branching and Merging: Git provides powerful branching and merging capabilities. Developers can create separate branches to work on different features or bug fixes, and later merge them back into the main codebase. This enables parallel development and experimentation without affecting the main codebase.
3. Versioning and History: Git tracks changes at the file level, allowing developers to view the complete history of modifications, including who made the changes and when. This makes it easier to understand the evolution of a project and revert to previous versions if necessary.
4. Collaboration: Git enables multiple developers to collaborate on a project by providing mechanisms for sharing and synchronizing code. Developers can push their changes to a central repository or share their changes with other team members using remote repositories.
Git is widely used in the software development industry and is supported by various hosting platforms such as GitHub, GitLab, and Bitbucket, which provide additional collaboration features and workflows built around Git.
Commonly used Git commands:
1. `git init`: Initializes a new Git repository in the current directory.
2. `git clone <repository>`: Creates a copy of a remote repository on your local machine.
3. `git add <file>`: Adds a file or changes to the staging area, preparing it for a commit.
4. `git commit -m “message”`: Creates a new commit with the changes in the staging area along with a descriptive message.
5. `git status`: Shows the current status of the repository, including modified files and files staged for commit.
6. `git log`: Displays the commit history of the repository, showing the author, date, and commit message for each commit.
7. `git push`: Pushes local commits to a remote repository.
8. `git pull`: Fetches and merges changes from a remote repository into the current branch.
9. `git branch`: Lists all local branches and shows the currently active branch.
10. `git checkout <branch>`: Switches to the specified branch.
11. `git merge <branch>`: Merges changes from the specified branch into the current branch.
12. `git remote add <name> <url>`: Adds a remote repository with a specified name and URL.
13. `git remote -v`: Lists all remote repositories associated with the current repository.
14. `git diff`: Shows the differences between the current state and the last commit.
15. `git stash`: Temporarily saves changes that are not ready to be committed, allowing you to switch branches without committing them.
These are just a few of the basic Git commands which should help to start with. Git provides a rich set of commands and options to manage version control efficiently. You can find more information about specific commands and their options in the Git documentation or by using the `git –help` command.
Checkout the below video for more details