Essential Git Commands: A Comprehensive Guide

Git is a powerful version control system widely used by developers for effective management of codebases. Knowing key Git commands is essential for successful development and project management. Below is a list of the most important Git commands, detailed explanations of their functionality, and usage examples.

Setup and Configuration

git config

This command sets user parameters in Git, including user name and email, which is critical for authorship identification in your work. For example, setting your user name and email:

git config --global user.name "Your Name" 
git config --global user.email "your_email@example.com"

Creating and Cloning Repositories

git init

Initializes a new local Git repository. This is the first step in creating a new project under Git management. In the project folder, just execute:

git init

git clone [url]

Cloning a repository means creating a local copy of an existing repository from a remote source. For example, cloning a GitHub repository:

git clone https://github.com/example/repo.git

Basics of Working with Branches

git branch

With git branch, you can create, list, and delete branches. Creating a new branch for feature development:

git branch new-feature

git checkout

This command allows you to switch between branches or restore files in the working directory. To switch to the new-feature branch:

git checkout new-feature

git merge [branch]

git merge is used to merge changes from one branch into another. For instance, merging the new-feature branch into the current branch:

git merge new-feature

Working with Changes

git status

git status provides information about the status of files in the working directory and index — which files are modified but not added to the index, and which are ready to be committed:

git status

git add [file]

git add adds file changes to the index, preparing them for commit. To add a specific file:

git add example.txt

git commit -m "[message]"

git commit saves your changes in the repository. Each commit is accompanied by a message describing the made changes:

git commit -m "Added new functionality"

git diff

git diff shows the difference between files in the working directory and index, helping to understand what changes have been made:

git diff

Remote Repositories

git push [remote] [branch]

Sending changes from a local repository to a remote repository is done through git push. For example, to push changes to the master branch on the origin server:

git push origin master

git pull [remote]

git pull fetches and integrates changes from a remote repository into a local one. It’s a combination of fetch and merge commands:

git pull origin master

git fetch [remote]

git fetch downloads changes from a remote repository but does not integrate them into the current branch:

git fetch origin

Conclusion

These commands are the foundation for effective work with Git. Mastering them will allow you to better control the development process and collaborate with other developers. Regular use of Git will improve the quality and organization of your code.