DEV Community

Şammas Çölkesen
Şammas Çölkesen

Posted on • Edited on

Git Tuturial For Beginners

Git Tutorial


User Settings

for usage manuel

#git help
Enter fullscreen mode Exit fullscreen mode

config our username and email

#git config --global user.name "sammas"
#git config --global user.email "sammas@gmail.com"
Enter fullscreen mode Exit fullscreen mode

show everything configs

#git config --list
Enter fullscreen mode Exit fullscreen mode

Create

create repo

#cd path_folder 
#git init 
Enter fullscreen mode Exit fullscreen mode

clone a repo

#git clone repo_url
Enter fullscreen mode Exit fullscreen mode

Local Changes

view working status

#git status
Enter fullscreen mode Exit fullscreen mode

track changed files

#git diff
Enter fullscreen mode Exit fullscreen mode

add a file to next commit

#git add -p <filename>
Enter fullscreen mode Exit fullscreen mode

commit all files

#git add .
this means take snapshots of all things and maybe you later fuck things up and takes it back.
Enter fullscreen mode Exit fullscreen mode

commit message

#git commits -m "this is commit message"
Enter fullscreen mode Exit fullscreen mode

change the last commit

#git commit --amend
dont do it to pushed commits
Enter fullscreen mode Exit fullscreen mode

Search for commits that include a keyword

#git log -S"config.menu_items"
Enter fullscreen mode Exit fullscreen mode

Local History

view logs

#git log
#git log --author="sammas"
#git log -p file
Enter fullscreen mode Exit fullscreen mode

show stats

#git log --stat
Enter fullscreen mode Exit fullscreen mode

Print out visualization of your log

#git log --pretty=oneline --graph --decorate --all
Enter fullscreen mode Exit fullscreen mode

look at who and what changed in file

#git blame file
Enter fullscreen mode Exit fullscreen mode

show pathces

#git log -p
Enter fullscreen mode Exit fullscreen mode

Branches

list branches

#git branch -av
Enter fullscreen mode Exit fullscreen mode

switch HEAD branch

#git checkout <branch>
Enter fullscreen mode Exit fullscreen mode

create a new branch based on your current HEAD

#git branch <newBranch>
Enter fullscreen mode Exit fullscreen mode

delete local branch

#git branch -d <branch>
Enter fullscreen mode Exit fullscreen mode

mark the commit

#git tag <tagName>
Enter fullscreen mode Exit fullscreen mode

create branch from remote branch

#git checkout --track <remoteBranch>
Enter fullscreen mode Exit fullscreen mode

Publish

Pushing to a GitHub Repository

#git remote add project_name https://github.com/user/repo.git 
#git push -u project_name branch(master vs)
Enter fullscreen mode Exit fullscreen mode

Commit Directly to the Repository

#git commit -am "message"
Enter fullscreen mode Exit fullscreen mode

list all configured remotes

#git remote -v
Enter fullscreen mode Exit fullscreen mode

show info about remote

#git remote show <remotename>
Enter fullscreen mode Exit fullscreen mode

download all changes from remote but dont integrate into HEAD

#git fetch <remote>
Enter fullscreen mode Exit fullscreen mode

download all changes from remote and merge to HEAD

#git pull <remote> <branch>
Enter fullscreen mode Exit fullscreen mode

publish your tags

#git push --tags
Enter fullscreen mode Exit fullscreen mode

Merge

merge branch into your current HEAD

#git merge <branch>
Enter fullscreen mode Exit fullscreen mode

rebase your current HEAD onto branch

#git rebase <branch>
Enter fullscreen mode Exit fullscreen mode

abort rebase

#git  rebase --abort
Enter fullscreen mode Exit fullscreen mode

Undo

delet all local changes

#git reset --hard HEAD
Enter fullscreen mode Exit fullscreen mode

delete one file changes

#git checkout HEAD <file>
Enter fullscreen mode Exit fullscreen mode

reset your HEAD to previous commit

#git reset --hard <commit>

preserve all changes as unstaged changes
#git reset <commit>

and preserve uncommitted local changes
#git reset --keep <commit>
Enter fullscreen mode Exit fullscreen mode

delete files

#git rm file
Enter fullscreen mode Exit fullscreen mode

rename files

#git mv msg.txt mesaj.txt
Enter fullscreen mode Exit fullscreen mode

moving files

#git mv msg.txt home\sammas\msg.txt
Enter fullscreen mode Exit fullscreen mode

Getting Old Versions from the Repository

#git log
#git checkout 0128dba..... -- index.html
Enter fullscreen mode Exit fullscreen mode

Create Alias

alias gitA="git add -A ."
alias gitC="git commit -m"
alias gitP="git push"
Enter fullscreen mode Exit fullscreen mode

List all git aliases

#git config -l | grep alias | sed 's/^alias\.//g'
Enter fullscreen mode Exit fullscreen mode

Git Notes

Add or inspect object notes

list notes about object

git notes [list [<object>]]
Enter fullscreen mode Exit fullscreen mode

Add notes for a given object (defaults to HEAD)

git notes add [-f] [--allow-empty] [-F <file> | -m <msg> | (-c | -C) <object>] [<object>]
Enter fullscreen mode Exit fullscreen mode

Copy the notes for the first object onto the second object.

git notes copy [-f] ( --stdin | <from-object> <to-object> )
Enter fullscreen mode Exit fullscreen mode

Append to the notes of an existing object (defaults to HEAD). Creates a new notes object if needed.

git notes append [--allow-empty] [-F <file> | -m <msg> | (-c | -C) <object>] [<object>]
Enter fullscreen mode Exit fullscreen mode

Edit the notes for a given object (defaults to HEAD).

git notes edit [--allow-empty] [<object>]
Enter fullscreen mode Exit fullscreen mode

Show the notes for a given object (defaults to HEAD).

git notes show [<object>]
Enter fullscreen mode Exit fullscreen mode

Merge the given notes ref into the current notes ref

git notes merge [-v | -q] [-s <strategy> ] <notes-ref>
Enter fullscreen mode Exit fullscreen mode

Remove the notes for given objects (defaults to HEAD)

git notes remove [--ignore-missing] [--stdin] [<object>…​]
Enter fullscreen mode Exit fullscreen mode

Remove all notes for non-existing/unreachable objects.

git notes prune [-n] [-v]
Enter fullscreen mode Exit fullscreen mode

Print the current notes ref.

git notes get-ref
Enter fullscreen mode Exit fullscreen mode

Top comments (3)

Collapse
 
fennecdjay profile image
Jérémie Astor

That's a great cheatsheet, but I have to confess I expected something about note in git, as there is a

git notes

command I'd love to understand and use.

Collapse
 
kavanozkafa profile image
Şammas Çölkesen

hi, Jérémie
Thanks for advice. I've just add "git notes" section. Also I changed the name of article. No confusion anymore.

Collapse
 
fennecdjay profile image
Jérémie Astor

neat! 😄