Configure name and email address

[code language=”bash”]

git config –global user.name “Vivek Bhadra” –> configuring git with the user name

git config –global user.email “vibhadra@xxxx.com” –> configuring git with user e-mail

git config –global core.autocrlf input

git config –global core.safecrlf true

[/code]

Initialize a git repo

[code language=”bash”]

git init

[/code]

Add file in the repo

[code language=”bash”]

git add hello.txt
[/code]

Commit your changes

[code language=”bash”]

git commit -m “First Commit”
[/code]

Checking status of the git repo

[code language=”bash”]

git status
[/code]

Removing a file

[code language=”bash”]

git rm –cached hello.txt –> removes the file if not already
[/code]

Discard all changes in a modified file

[code language=”bash”]

git checkout — test.c –> discards any changes made
[/code]

Unstage any staged file

[code language=”bash”]

git reset HEAD test.c –> unstages a git added file
[/code]

Checking log

[code language=”bash”]

git log –pretty=oneline –> shows git history in one line each commit

git log –grep=First –> greps the commit line

man git-log –> shows the git log man page

git log -n 2 –> shows the last two commit history

git log –pretty=format:”Commit Hash: %H, Author: %aN, Date: %aD”
[/code]

To revert back to a previous version

[code language=”bash”]

git log –> It will show the SHAsum of the previous versions.
[[/code]

For example below:

[code language=”bash”]
commit 98a31dfe2c528e4132cd8ca7af5f07e4765958aa Author: unknown Date:   Wed Jun 10 17:26:27 2015 +0100 commit message
[/code]

[code language=”bash”]
git reset  –hard
git reset –hard 98a31dfe2c528e4132cd8ca7af5f07e4765958aa
[/code]

It will set the HEAD to the specified version.

Revert Git repo to a previous commit

Temporarily switch to a different commit

[code language=”bash”]

git checkout 0d1d7fc32

If you want to move to a old commit and check it in


git checkout -b old-state 0d1d7fc32

Reverting Working Copy to Most Recent Commit

[code language="bash"] git reset --hard HEAD [/code]

To see the difference between your working copy and commit 4ac0a6733

[code language="bash"]

git diff 4ac0a6733 [/code]

To see the previous commits in git

[code language="bash"]

git log --pretty=oneline --decorate --all [/code]

Cloning from an existing git repo

[code language="bash"]

git clone https://github.com/vivekbhadra/kernel_programming.git

[/code]

In the above example the git repository is located at https://github.com/vivekbhadra/kernel_programming.git which was created in github.com and can be found here.

Pushing changes up in the master

[code language="bash"]

git push

[/code]

Check git branch

[code language="bash"]

vbhadra@vbhadra-VirtualBox:~/kernel_programming$ git branch -av
* master 5a562f2 Sample hellow world module.
remotes/origin/master 5a562f2 Sample hellow world module.
vbhadra@vbhadra-VirtualBox:~/kernel_programming$

[/code]

Create a new git branch

[code language="bash"]

git checkout -b

[/code]

In the above the name of the new branch can be anything you like. Ideally a name which can briefly describes what the branch is about would be nice.

[code language="bash"]

vbhadra@vbhadra-VirtualBox:~/kernel_programming$ git branch -av
master 5a562f2 Sample hellow world module.
* new_development 5a562f2 Sample hellow world module.
remotes/origin/master 5a562f2 Sample hellow world module.
vbhadra@vbhadra-VirtualBox:~/kernel_programming$

[/code]

Switching between branches

[code language="bash"]

git checkout

[/code]

Example

[code language="bash"]

vbhadra@vbhadra-VirtualBox:~/kernel_programming$ git checkout master
Switched to branch 'master'
Your branch is up-to-date with 'origin/master'.
vbhadra@vbhadra-VirtualBox:~/kernel_programming$ git branch -av
* master 5a562f2 Sample hello world module.
new_development 5a562f2 Sample hello world module.
remotes/origin/master 5a562f2 Sample hello world module.
vbhadra@vbhadra-VirtualBox:~/kernel_programming$ git checkout new_development
Switched to branch 'new_development'
vbhadra@vbhadra-VirtualBox:~/kernel_programming$ git branch -av
master 5a562f2 Sample hellow world module.
* new_development 5a562f2 Sample hellow world module.
remotes/origin/master 5a562f2 Sample hellow world module.
vbhadra@vbhadra-VirtualBox:~/kernel_programming$

[/code]

Leave a Reply