Git Cheat Sheet for Beginners


The cheat sheet will help you in getting started with Git. This assumes that you have installed git on your machine.


1. Configuring Git.


You can set the name and the e-mail address that will be attached to your commits and tags using below command

$ git config --global user.name “Your Name”
$ git config --global user.email “you@example.com”



2. Starting A Project


$ git init [project name]
Creates a new local repository. If [project name] is provided, Git will create a new directory name [project name] and will initialize a repository inside it. If [project name] is not provided, then a new repository is initialized in the current directory.

 
 $ git clone [project url] 
Downloads a project with the entire commits history from the remote repository.



3. Day-To-Day Work


$ git status
Displays the status of your working directory. Options include new, staged, and modified files. It will retrieve the branch name, current commit identifier, and changes pending commit.

 
$ git add [file]
Add a file to the staging area. If you provide a path instead of [file], It adds all changed files from the current directory down into the directory tree.

 
$ git diff [file]
Show changes between the working directory and the staging area.

 
$ git diff --staged [file]
Shows any changes between the staging area and the repository.

 
$ git checkout -- [file]
Discard changes in the working directory. This operation is unrecoverable.

 
$ git reset [file]
Revert your repository to a previous known working state.

 
$ git commit
Create a new commit from changes added to the staging area. The commit must have a message!

$ git rm [file]

Remove the file from the working directory and staging area.

 
$ git stash
Put current changes in your working directory into the stash for later use.

 
$ git stash pop
Apply stored stash content into a working directory, and clear the stash.

 
$ git stash drop
Delete a specific stash from all your previous stashes



4. Git branching model


$ git branch [-a]
List all local branches in the repository. With -a: show all branches (with remote).

 
$ git branch [branch_name]
Create a new branch, referencing the current HEAD.

 
$ git checkout [-b][branch_name]
Switch the working directory to the specified branch. With -b: Git will create the specified branch if it does not exist.

 
$ git merge [from name]
Join the specified [from name] branch into your current branch (the one you are on currently).

 
$ git branch -d [name]
Remove the selected branch, if it is already merged into any other. -D instead of -d forces deletion.



5. Review your work


$ git log [-n count]
List the commit history of the current branch. -n count limits list to the last n commits.

 
$ git log --oneline --graph --decorate
An overview with reference labels and a history graph. One commit per line.

 
$ git log ref..
List commits that are present on the current branch and not merged into the ref. A ref can be a branch name or a tag name.

 
$ git log ..ref
List commit that is present on the ref and not merged into the current branch.

 
$ git reflog
List operations (e.g. checkouts or commits) made on a local repository.



6. Tagging known commits


$ git tag
List all tags.

 
$ git tag [name] [commit sha]
Create a tag reference named name for the current commit. Add commit sha to tag a specific commit instead of the current one.

 
$ git tag -a [name] [commit sha]
Create a tag object named name for the current commit.

 
$ git tag -d [name]
Remove a tag from the local repository.



7. Reverting changes


$ git reset [--hard] [target reference]
Switches the current branch to the target reference, leaving a difference as an uncommitted change. When --hard is used, all changes are discarded.

 
$ git revert [commit sha]
Create a new commit, reverting changes from the specified commit. It generates an inversion of changes.



8. Synchronizing repositories


$ git fetch [remote]
Fetch changes from the remote, but does not update tracking branches.


$ git fetch --prune [remote]

Delete remote Refs that were removed from the remote repository.

 
$ git pull [remote]
Fetch changes from the remote and merge the current branch with its upstream.

 
$ git push [--tags] [remote]
Push local changes to the remote. Use --tags to push tags.

 
$ git push -u [remote] [branch]
Push the local branch to the remote repository. Set its copy as an upstream



9. Ignoring Files Ignoring Files


$ cat .gitignore
/logs/*
!logs/.gitkeep
/tmp
*.swp
Verify the .gitignore file exists in your project and ignore the specific type of files, such as all files in the logs directory (excluding the .gitkeep file), the whole tmp directory and all files *.swp. File ignoring will work for the directory (and children's directories) where the .gitignore file is placed.

Post a Comment

Post a Comment (0)

Previous Post Next Post