Git cheatsheet for beginners
Now days git is a very useful and powerful skill to have and almost necessary in many development companies. getting job offers for software developers, you may realize that knowing git is nearly as important as knowing an actual normal programming language. But still many people forget to check out how git works and what commands are responsible for what action.
There are basic terms which help to understand git commands.
Repository: Repository keeps all your project's files, including commits and branches thaat means everything of your project is here.
Branch: branch is a something is holding the specific version of your repo (repository). The main branch in git is master.
commit: commit can be treated as a single save of changes to the specific branch.
Checkout: checkout is the operation of changing the current branch to specific branch of getting into a specific branch and the one specified in the command.
Merge: merge is an action that sum up (merging) changes from one branch to another branch.
fork: fork is a copy of the repository.
Head: head is the most recent commit of the repository you have worked with.
Basic flow of git commands for creating a git repository
git init | git init [folder]
git init command is used to initialize an empty repository from the folder you are currently using this command or using folder path, both ways are correct. Itâ€™s used while starting a new project or if you want to initialize the git repository inside the existing project.
git clone [repo URL] [folder]
Git clone is used to copy the existing repository to the specified folder on your computer. Git clone can be used only with repo URL as a parameter, then it will copy the repository to the folder from where you used the command. If you want to copy the repository to a different location on your computer, add a folder path as a second parameter.
git add [directory | file]
Git add stage all changes in the directory or in the file, and it depends on what you add as a parameter. In most cases, it's followed by git commit and git push commands.
git commit -m "[message]"
This command is used to commit all staged changes with the custom message passed as a string. By changing -m parameter to -am it's possible to add and commit changes at once.
This is the command, which pushes changes to the origin branch.
Git status is used to check the status of the modified files and it shows which files are staged, unstaged, and untracked.
Git log is used to display the history of the commit in the default format.
Git diff shows all unstaged differences between the index and the current directory. This command can be used with -staged to display differences between staging files and the most recent versions. And another option is to use the command with the file name to display differences between the file and in the last commit.
Git pull is used to get changes from the original branch, and it merges the changes into the local branch.
This command retrieves the most recent changes from the origin branch but doesn't merge.
Git branch commands
This command displays the list of all branches in the repository. It can also create a non-existing branch if you add a branch name as a parameter.
git branch -d [branchname]
Using -d flag will delete the branch with the specified branch name.
git checkout [branchname]
This command switch to the branch named [branchnamed]. If you add -b flag before branch name, it will checkout to a new branch, which will be created automatically.
git merge [branchname]
It merges the branch with the specified branch name to the current branch
Git undoing changes commands
git revert [commit]
This command creates a new commit that undoes changes made in the specified commit and applies it to the current branch.
git reset [filename]
It remotes specifies a file from the staging and leaves the working directory unchanged.
Git config commands
git config -global user.email [user_email]
git config -global user.name [user_name]
The commands above are used to set current user email and name configuration.
git config --global --edit
And this command is very useful, as it allows for editing user configuration in a text editor.