A distributed version control system is a system that helps you keep track of changes you've made to files in your project.
This change history lives on your local machine and lets you revert to a previous version of your project with ease in case something goes wrong.
Git makes collaboration easy. Everyone on the team can keep a full backup of the repositories they're working on on their local machine. Then, thanks to an external server like BitBucket, GitHub or GitLab, they can safely store the repository in a single place.
This way, different members of the team can copy it locally and everyone has a clear overview of all changes made by the whole team.
git --version
The command below returns a list of information about your git configuration including user name and email:
git config -l
With the command below you can configure your username: and email
git config --global user.name "username" git config --global user.email "email"
You can store login credentials in the cache so you don't have to type them in each time. Just use this command:
git config --global credential.helper cache
Everything starts from here. The first step is to initialize a new Git repo locally in your project root. You can do so with the command below:
git init
The command below will add a file to the staging area. Just replace filename_here with the name of the file you want to add to the staging area.
git add filename_here
If you want to add all files in your project to the staging area, you can use a wildcard . and every file will be added for you.
git add .
This command will show the status of the current repository including staged, unstaged, and untracked files.
git status
You can add a commit message without opening the editor. This command lets you only specify a short summary for your commit message.
git commit -m "your commit message here"
You can add and commit tracked files with a single command by using the -a and -m options.
git commit -a -m"your commit message here"
You can pass a file as a parameter to only see changes on a specific file. git diff shows only unstaged changes by default. We can call diff with the --staged flag to see any staged changes.
git diff git diff all_checks.py git diff --staged
This command shows the commit history for the current repository:
git log
This command shows the commit's history including all files and their changes:
git log -p
This command shows a specific commit. Replace commit-id with the id of the commit that you find in the commit log after the word commit.
git show commit-id
This command expects a commit message to explain why the file was deleted.
git rm filename
git mv oldfile newfile
You can use the -p option flag to specify the changes you want to reset.
git reset HEAD filename git reset HEAD -p
git commit --amend allows you to modify and add changes to the most recent commit.
git commit --amend
git revert will create a new commit that is the opposite of everything in the given commit. We can revert the latest commit by using the head alias like this:
git revert HEAD
You can revert an old commit using its commit id. This opens the editor so you can add a commit message.
git revert comit_id_here
By default, you have one branch, the main branch. With this command, you can create a new branch. Git won't switch to it automatically – you will need to do it manually with the next command.
git branch branch_name
When you want to use a different or a newly created branch you can use this command:
git checkout branch_name
You can view all created branches using the git branch command. It will show a list of all branches and mark the current branch with an asterisk and highlight it in green.
git branch
In a single command, you can create and switch to a new branch right away.
git checkout -b branch_name
When you are done working with a branch and have merged it, you can delete it using the command below:
git branch -d branch_name
To merge the history of the branch you are currently in with the branch_name, you will need to use the command below:
git merge branch_name
If you want to throw a merge away and start over, you can run the following command:
git merge --abort
When all your work is ready to be saved on a remote repository, you can push all changes using the command below:
git push
If other team members are working on your repository, you can retrieve the latest changes made to the remote repository with the command below:
git pull
If other team members are working on your repository, you can get the latest changes from another branch with the command below:
git pull origin branch_name