Search Bar

Important GIT Commands Daily Use


Important GIT Commands Daily Use.

        
        There is plenty of git cheat sheet available on the internet but still, I am trying to write one blog on a git cheat sheet for new students/engineers or users. I am trying to write all possible simple and daily use git cheat sheets here.

Important GIT Commands Daily Use.
Important GIT Commands Daily Use.

Getting Started

Set the name and email that will be attached to your commits and tag

$ git config --global user.name "Amol Gadage"

$ git config --global user.email "amolgadge666gmail.com"


Create new repository

$ git init     (in project working directory)


Adding files and committing

$ git add .    (adds all files under current directory)

$ git commit -m 'initial commit'

Checking status

$ git status

$ git log    [--pretty=oneline]


Cloning a repository from GitHub

Cloning a public repository

$ git clone git://github.com/path-to-repository/project.git


Cloning a private repository (to which we can later push changes):

$ git clone git@github.com:username/project.git

Synchronizing changes

Pull changes from the original source of clone (no need to specify remote repository name as it is stored when the repository was first cloned):

$ git pull


Make changes, add and commit then push updates to the remote repository

$ git push


Branches

$ git branch mybranch     (create the branch named 'mybranch')

$ git checkout mybranch   (switch to the branch)

$ git checkout master     (switch back to the master branch)

$ git branch              (list all branches)

Pushing a branch

$ git push origin mybranch


Merging a branch

$ git checkout master   (first switch to the master branch)

$ git merge mybranch    (merge all changes from mybranch into the master branch)

$ gid add <file>        (fix and add any conflicts)

$ git commit -m 'merged changes'


Delete a branch

$ git branch -d mybranch


Deleting a remote branch

$ git push origin :mybranch

Tags

Showing tags

$ git tag [-l v1.*]


Create annotated tag

$ git tag -a v1.5 -m 'version 1.5'


Tagging an existing commit

$ git tag -a v1.1 -m 'version 1.1' <*checksum*>  (checksum from git log)


Pushing tags

$ git push --tags


Logs

View changes (patches)

$ git log -p

View Stats

$ git log --stat


Use one-line output

$ git log --pretty=oneline


View branches

$ git log --pretty=oneline --graph


Search commit messages

$ git log --grep='pattern' --pretty=oneline

File History

$ git log --pretty=oneline -- <file>


Directory History

$ git log --pretty=oneline --all -- <dir>


Do not show merges

$ git log --pretty=oneline --no-merges


Show last 5 commits

$ git log --pretty=oneline -5


Commits between two other commits

$ git log master..mybranch --pretty=oneline

$ git log

Diff

Show modifications not yet staged

$ git diff


Show modifications not yet committed

$ git diff --staged


Show all changes since the last commit

$ git diff HEAD


Show changes to a file since a specific (tagged) commit

$ git diff v1.0 -- <file>


Show stats for differences between two (tagged) commits

$ git diff v1.0 v1.1 --stat

Undo Changes

Unstage a file

$ git reset HEAD <file>


If you cannot remember this create an alias as follows:

$ git config --global alias.unstage 'reset HEAD'

$ git unstage <file>


Discard changes to a file

$ git checkout -- <file>

Breaking Existing Commits to a Branch

Make a note of the SHAR for the commit that you want to rollback to:

$ git log --pretty=oneline

Then switch to the branch and reset the head to the required commit

$ git branch mybranch

$ git reset --hard <SHAR>


If the previous head was pushed to a repository

$ git push --force     (deletes all later changes!)


Post a Comment

0 Comments