git 's way

Post on 17-Jul-2015

18 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

#whoamiGit

Git’s way

Muna A.H @abdimuna1

January 21, 2015

Muna A.H @abdimuna1 Git’s way

#whoamiGit

Outline

1 #whoami

2 GitConfigsGit fundamentalsBranchingTagsstashesEnd

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

Me:

Name: @abdimuna1;From: DAR;Mcs: Informatic

∫& comp Engineering;

Day Job: AIMGROUP(T) a∫ ∫

enior Developer;Night Job: Independent

∫ecurity Researcher.

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

What is Git

Git is a fast, scalable, distributed revision control system with anunusually rich command set that provides both high-leveloperations and full access to internals.

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

What is Git . . .

|\ff150a7 | * | MAINTAINERS: ufs - remove self693373d | * | MAINTAINERS: change hpsa and cciss maintainere999dbc | * | Revert "block: all blk-mq requests are tagged"ae67479 | * | lib/scatterlist: fix memory leak with scsi-mq

|\ \ \| |\ \ \

74cfe07 | | * | | drm/exynos: correct connector->dpms field before resumingd6948b2 | | * | | drm/exynos: enable vblank after DPMS on3cb6830 | | * | | drm/exynos: init kms poll at the end of initializationc52142e | | * | | drm/exynos: init vblank with real number of crtcs

| |/ / /

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

Why Git ?

Git is extremly powerful tool if used fully!abdimuna

Few reasons for it:Speed

Simplicitynon-linear development, lightweight branchesFully distributed, this means every one can have acopy of of the repoCan handle large projects like Linux Kernel

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

Why Git ?

Git is extremly powerful tool if used fully!abdimuna

Few reasons for it:SpeedSimplicity

non-linear development, lightweight branchesFully distributed, this means every one can have acopy of of the repoCan handle large projects like Linux Kernel

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

Why Git ?

Git is extremly powerful tool if used fully!abdimuna

Few reasons for it:SpeedSimplicitynon-linear development, lightweight branches

Fully distributed, this means every one can have acopy of of the repoCan handle large projects like Linux Kernel

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

Why Git ?

Git is extremly powerful tool if used fully!abdimuna

Few reasons for it:SpeedSimplicitynon-linear development, lightweight branchesFully distributed, this means every one can have acopy of of the repo

Can handle large projects like Linux Kernel

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

Why Git ?

Git is extremly powerful tool if used fully!abdimuna

Few reasons for it:SpeedSimplicitynon-linear development, lightweight branchesFully distributed, this means every one can have acopy of of the repoCan handle large projects like Linux Kernel

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

Configurations

Types of configurations:- Local configurations

- Global configurations

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

Configurations

Types of configurations:- Local configurations- Global configurations

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

Local configurations

Is the type of config which is done per repo basis

Fore example to add a remote repositorygit remote add origin git@github.com/abdimuna/demo.gitNow you can pull or push from this demo repoTo view local configs, vim /.git/config/ within the repo [core]repositoryformatversion = 0filemode = truebare = falselogallrefupdates = trueremote "origin"url = git@bitbucket.org:abdimuna/demo.gitfetch = +refs/heads/*:refs/remotes/origin/*

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

Local configurations

Is the type of config which is done per repo basisFore example to add a remote repository

git remote add origin git@github.com/abdimuna/demo.gitNow you can pull or push from this demo repoTo view local configs, vim /.git/config/ within the repo [core]repositoryformatversion = 0filemode = truebare = falselogallrefupdates = trueremote "origin"url = git@bitbucket.org:abdimuna/demo.gitfetch = +refs/heads/*:refs/remotes/origin/*

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

Local configurations

Is the type of config which is done per repo basisFore example to add a remote repositorygit remote add origin git@github.com/abdimuna/demo.git

Now you can pull or push from this demo repoTo view local configs, vim /.git/config/ within the repo [core]repositoryformatversion = 0filemode = truebare = falselogallrefupdates = trueremote "origin"url = git@bitbucket.org:abdimuna/demo.gitfetch = +refs/heads/*:refs/remotes/origin/*

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

Local configurations

Is the type of config which is done per repo basisFore example to add a remote repositorygit remote add origin git@github.com/abdimuna/demo.gitNow you can pull or push from this demo repo

To view local configs, vim /.git/config/ within the repo [core]repositoryformatversion = 0filemode = truebare = falselogallrefupdates = trueremote "origin"url = git@bitbucket.org:abdimuna/demo.gitfetch = +refs/heads/*:refs/remotes/origin/*

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

Local configurations

Is the type of config which is done per repo basisFore example to add a remote repositorygit remote add origin git@github.com/abdimuna/demo.gitNow you can pull or push from this demo repoTo view local configs, vim /.git/config/ within the repo [core]repositoryformatversion = 0filemode = truebare = falselogallrefupdates = trueremote "origin"url = git@bitbucket.org:abdimuna/demo.gitfetch = +refs/heads/*:refs/remotes/origin/*

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

Global configurations

These are git configurations which are applied to all system-userlevel

Its good habit to place global configurations at$HOME/.gitconfig file

Components of the fileuser name = abdimuna

email = abdimuna1@gmail.comcolor ui = truehttp postBuffer = 524288000push default = current

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

Global configurations

These are git configurations which are applied to all system-userlevel

Its good habit to place global configurations at$HOME/.gitconfig fileComponents of the file

user name = abdimunaemail = abdimuna1@gmail.com

color ui = truehttp postBuffer = 524288000push default = current

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

Global configurations

These are git configurations which are applied to all system-userlevel

Its good habit to place global configurations at$HOME/.gitconfig fileComponents of the file

user name = abdimunaemail = abdimuna1@gmail.com

color ui = truehttp postBuffer = 524288000push default = current

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

Global configurations

These are git configurations which are applied to all system-userlevel

Its good habit to place global configurations at$HOME/.gitconfig fileComponents of the file

user name = abdimunaemail = abdimuna1@gmail.com

color ui = true

http postBuffer = 524288000push default = current

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

Global configurations

These are git configurations which are applied to all system-userlevel

Its good habit to place global configurations at$HOME/.gitconfig fileComponents of the file

user name = abdimunaemail = abdimuna1@gmail.com

color ui = truehttp postBuffer = 524288000

push default = current

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

Global configurations

These are git configurations which are applied to all system-userlevel

Its good habit to place global configurations at$HOME/.gitconfig fileComponents of the file

user name = abdimunaemail = abdimuna1@gmail.com

color ui = truehttp postBuffer = 524288000push default = current

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

Global config. . .

core excludesfile = /Users/abdimuna/.gitignoreg lobaltrustctime = false

difftool "sourcetree" cmd = opendiff LOCAL¨¨REMOTEΞpath =

mergetool "sourcetree" cmd =/Applications/SourceTree.app/Contents/Resources/opendiff-w.shLOCAL¨¨REMOTEΞ

− ancestorΓBASEΞ−mergeΓMERGEDΞtrustExitCode = true

alias

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

Global config. . .

core excludesfile = /Users/abdimuna/.gitignoreg lobaltrustctime = false

difftool "sourcetree" cmd = opendiff LOCAL¨¨REMOTEΞpath =

mergetool "sourcetree" cmd =/Applications/SourceTree.app/Contents/Resources/opendiff-w.shLOCAL¨¨REMOTEΞ

− ancestorΓBASEΞ−mergeΓMERGEDΞtrustExitCode = true

alias

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

Global config. . .

core excludesfile = /Users/abdimuna/.gitignoreg lobaltrustctime = false

difftool "sourcetree" cmd = opendiff LOCAL¨¨REMOTEΞpath =

mergetool "sourcetree" cmd =/Applications/SourceTree.app/Contents/Resources/opendiff-w.shLOCAL¨¨REMOTEΞ

− ancestorΓBASEΞ−mergeΓMERGEDΞtrustExitCode = true

alias

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

Global config. . .

core excludesfile = /Users/abdimuna/.gitignoreg lobaltrustctime = false

difftool "sourcetree" cmd = opendiff LOCAL¨¨REMOTEΞpath =

mergetool "sourcetree" cmd =/Applications/SourceTree.app/Contents/Resources/opendiff-w.shLOCAL¨¨REMOTEΞ

− ancestorΓBASEΞ−mergeΓMERGEDΞtrustExitCode = true

alias

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

Global config . . .

Alternativelly you can use commandline to configure gitgit config –global user.name "Abdi Muna"

git config –global user.email "abdimuna1@gmail.com"...for help git help config

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

Global config . . .

Alternativelly you can use commandline to configure gitgit config –global user.name "Abdi Muna"git config –global user.email "abdimuna1@gmail.com"

...for help git help config

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

Global config . . .

Alternativelly you can use commandline to configure gitgit config –global user.name "Abdi Muna"git config –global user.email "abdimuna1@gmail.com"...for help git help config

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

Initialization

cd /̃aim/my-talks/demo-git

touch README .txt

lsREADME.txt

git initInitialized empty Git repository in /my-talks/demog it/.git/

edit README.txtecho”workingongit” >> README .txt

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

Initialization

cd /̃aim/my-talks/demo-gittouch README .txt

lsREADME.txt

git initInitialized empty Git repository in /my-talks/demog it/.git/

edit README.txtecho”workingongit” >> README .txt

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

Initialization

cd /̃aim/my-talks/demo-gittouch README .txt

lsREADME.txt

git initInitialized empty Git repository in /my-talks/demog it/.git/

edit README.txtecho”workingongit” >> README .txt

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

Initialization

cd /̃aim/my-talks/demo-gittouch README .txt

lsREADME.txt

git initInitialized empty Git repository in /my-talks/demog it/.git/

edit README.txtecho”workingongit” >> README .txt

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

Initialization

cd /̃aim/my-talks/demo-gittouch README .txt

lsREADME.txt

git initInitialized empty Git repository in /my-talks/demog it/.git/

edit README.txtecho”workingongit” >> README .txt

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

Staging

Is the process of adding files to be tracked by git

git add README.txtAfter adding file/s, check status by:git statusOn branch masterInitial commitUntracked files:(use "git add <file>..." to include in what will be committed)README.txtnothing added to commit but untracked files present (use "gitadd" to track)

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

Staging

Is the process of adding files to be tracked by gitgit add README.txt

After adding file/s, check status by:git statusOn branch masterInitial commitUntracked files:(use "git add <file>..." to include in what will be committed)README.txtnothing added to commit but untracked files present (use "gitadd" to track)

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

Staging

Is the process of adding files to be tracked by gitgit add README.txtAfter adding file/s, check status by:

git statusOn branch masterInitial commitUntracked files:(use "git add <file>..." to include in what will be committed)README.txtnothing added to commit but untracked files present (use "gitadd" to track)

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

Staging

Is the process of adding files to be tracked by gitgit add README.txtAfter adding file/s, check status by:git statusOn branch masterInitial commitUntracked files:(use "git add <file>..." to include in what will be committed)README.txtnothing added to commit but untracked files present (use "gitadd" to track)

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

Commiting

Commit Is the process of recording changes to a repositoryTo Commit to a run command

git commit -am "My commit message"master (root-commit) 492f203 added readme

1 file changed, 0 insertions(+), 0 deletions(-)create mode 100644 REDME.txtTo check status again:git statusOn branch masternothing to commit, working directory clean

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

Commiting

Commit Is the process of recording changes to a repositoryTo Commit to a run commandgit commit -am "My commit message"

master (root-commit) 492f203 added readme1 file changed, 0 insertions(+), 0 deletions(-)create mode 100644 REDME.txtTo check status again:git statusOn branch masternothing to commit, working directory clean

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

Commiting

Commit Is the process of recording changes to a repositoryTo Commit to a run commandgit commit -am "My commit message"

master (root-commit) 492f203 added readme1 file changed, 0 insertions(+), 0 deletions(-)create mode 100644 REDME.txt

To check status again:git statusOn branch masternothing to commit, working directory clean

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

Commiting

Commit Is the process of recording changes to a repositoryTo Commit to a run commandgit commit -am "My commit message"

master (root-commit) 492f203 added readme1 file changed, 0 insertions(+), 0 deletions(-)create mode 100644 REDME.txtTo check status again:

git statusOn branch masternothing to commit, working directory clean

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

Commiting

Commit Is the process of recording changes to a repositoryTo Commit to a run commandgit commit -am "My commit message"

master (root-commit) 492f203 added readme1 file changed, 0 insertions(+), 0 deletions(-)create mode 100644 REDME.txtTo check status again:git statusOn branch masternothing to commit, working directory clean

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

Commiting . . .

Hints about commits:make few changes

one change per commitdon’t do massive changes over the sundays, and commits onmondaywrite short good commit message, "fixed semicolon bug"

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

Commiting . . .

Hints about commits:make few changesone change per commit

don’t do massive changes over the sundays, and commits onmondaywrite short good commit message, "fixed semicolon bug"

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

Commiting . . .

Hints about commits:make few changesone change per commitdon’t do massive changes over the sundays, and commits onmonday

write short good commit message, "fixed semicolon bug"

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

Commiting . . .

Hints about commits:make few changesone change per commitdon’t do massive changes over the sundays, and commits onmondaywrite short good commit message, "fixed semicolon bug"

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

Reverting a commit

Suppose you made a mistake, and want to go back to previous state

git reset --had HEAD

this will delete the last current commit and go back to a commit b4it.

Note: these changes are irreversible, be warned

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

Reverting a commit

Suppose you made a mistake, and want to go back to previous state

git reset --had HEAD

this will delete the last current commit and go back to a commit b4it.Note: these changes are irreversible, be warned

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

Time machine, go back in time

Suppose you want to go back to a specific commit history,

git checkout <SHA-1-hash-value>

where SHA-1 is the commit hash

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

Logging

Is the way of showing commit messages git log [<options>][<revision range>] [[–] <path>. . . ]by default log lists

checksum

author’s name and emaildate writtencommit message

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

Logging

Is the way of showing commit messages git log [<options>][<revision range>] [[–] <path>. . . ]by default log lists

checksumauthor’s name and email

date writtencommit message

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

Logging

Is the way of showing commit messages git log [<options>][<revision range>] [[–] <path>. . . ]by default log lists

checksumauthor’s name and emaildate written

commit message

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

Logging

Is the way of showing commit messages git log [<options>][<revision range>] [[–] <path>. . . ]by default log lists

checksumauthor’s name and emaildate writtencommit message

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

Logging. . .

Log options-p -2 shows the diff introduced in each commit, limit output tolast 2 entries

–stat for showing abbreviated stats for each commit–pretty for formatting the ouput e.e –pretty=oneline

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

Logging. . .

Log options-p -2 shows the diff introduced in each commit, limit output tolast 2 entries–stat for showing abbreviated stats for each commit

–pretty for formatting the ouput e.e –pretty=oneline

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

Logging. . .

Log options-p -2 shows the diff introduced in each commit, limit output tolast 2 entries–stat for showing abbreviated stats for each commit–pretty for formatting the ouput e.e –pretty=oneline

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

Loggin. . .

You can view complex view like

git log --since=10.weeks

This show commits made in last 10 weeksDate: Thu Dec 4 14:41:04 2014 +0300monthly submissions within a yearcommit 452709b78219b7a428fdf6b1adf8dfcd1081427dAuthor: abdimuna <abdimuna1@gmail.com>Date: Thu Dec 4 14:08:30 2014 +0300twelve month submissionscommit 3fe1fa6b2ede1b1ad85d69df21616558608513e4Author: abdimuna <abdimuna1@gmail.com>Date: Thu Dec 4 11:25:53 2014 +0300added the by month graph

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

Loggin. . .

You can view complex view like

git log --since=10.weeks

This show commits made in last 10 weeksDate: Thu Dec 4 14:41:04 2014 +0300monthly submissions within a yearcommit 452709b78219b7a428fdf6b1adf8dfcd1081427dAuthor: abdimuna <abdimuna1@gmail.com>Date: Thu Dec 4 14:08:30 2014 +0300twelve month submissionscommit 3fe1fa6b2ede1b1ad85d69df21616558608513e4Author: abdimuna <abdimuna1@gmail.com>Date: Thu Dec 4 11:25:53 2014 +0300added the by month graph

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

Loggin. . .

Table: Log options

Option-(n)–since, –after–until, –before–author–committer

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

Branching

Is the way of spliting your project as multiple separate work-flowentitiesFore example you can have diffent branches:master develop featuer bug

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

Branches in a nut shell

| |/ / /d34d4d8 | * | | Merge branch ’drm-fixes-3.18’ of git://people.freedesktop.org/~agd5f/linux into drm-fixes

| |\ \ \072c44b | | * | | drm/radeon: remove some buggy dead code8c3e434 | | * | | drm/radeon: remove invalid pci id72b3f91 | | * | | drm/radeon: dpm fixes for asrock systemsc9cb57f | | * | | radeon: clean up coding style differences in radeon_get_bios()e5a5fd4 | | * | | drm/radeon: Use drm_malloc_ab instead of kmalloc_array6fa4559 | | * | | drm/radeon/dpm: disable ulv support on SI

| |\ \ \ \

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

Local branching

By default git init creates a master repository in your project Youcan

Create a new branchdelete a branchview branchespull from a branchmerge a branches

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

Local branching

By default git init creates a master repository in your project Youcan

Create a new branch

delete a branchview branchespull from a branchmerge a branches

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

Local branching

By default git init creates a master repository in your project Youcan

Create a new branchdelete a branch

view branchespull from a branchmerge a branches

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

Local branching

By default git init creates a master repository in your project Youcan

Create a new branchdelete a branchview branches

pull from a branchmerge a branches

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

Local branching

By default git init creates a master repository in your project Youcan

Create a new branchdelete a branchview branchespull from a branch

merge a branches

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

Local branching

By default git init creates a master repository in your project Youcan

Create a new branchdelete a branchview branchespull from a branchmerge a branches

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

creating a branch

simple !git branch <myBranchName>

To work on that branchgit checkout <myBranchName>go back to other branchgit checkout <myOtherBranchName>

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

creating a branch

simple !git branch <myBranchName>To work on that branchgit checkout <myBranchName>

go back to other branchgit checkout <myOtherBranchName>

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

creating a branch

simple !git branch <myBranchName>To work on that branchgit checkout <myBranchName>go back to other branchgit checkout <myOtherBranchName>

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

deleting

to delete a branch

git branch -d <branchNameToDelete>

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

viewing

to view all branches

git branch -v

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

pull

pulling from a remote specific branchgit pull remote origin:<myBranchName>

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

merge

merging from a remote branch

git merge remote origin:<branchNameToMerge>

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

remote branching

Are extremly useful when it comes to

storing you project as backupcollaboration with friends, or co-workers

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

remote branching

Are extremly useful when it comes tostoring you project as backup

collaboration with friends, or co-workers

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

remote branching

Are extremly useful when it comes tostoring you project as backupcollaboration with friends, or co-workers

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

remote branching. . .

To add a remote branch to your project aka repo

remote add origin <url-containing-repo>exampleremote add origin abdimuna@bitbucket.org/git-demo.git

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

remote branching. . .

To add a remote branch to your project aka reporemote add origin <url-containing-repo>

exampleremote add origin abdimuna@bitbucket.org/git-demo.git

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

remote branching. . .

To add a remote branch to your project aka reporemote add origin <url-containing-repo>exampleremote add origin abdimuna@bitbucket.org/git-demo.git

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

viewing remote

to view list of remote repos currently in your project

git remote -v

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

deleting remote

to delete a remote branch

git remote origin:delete-me-branch -d

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

pulling

to pull from a remote specific branchgit pull origin:<remoteBranchNameToPull>

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

merging

to merge files on your working project to that of remotegit merge origin:<remoteBranchNameToMerge>

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

Tags

Tags are very useful\ when it comes to

marking your project for certain release like v1.0.0marking your certain critical changes or features

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

Tags

Tags are very useful\ when it comes tomarking your project for certain release like v1.0.0

marking your certain critical changes or features

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

Tags

Tags are very useful\ when it comes tomarking your project for certain release like v1.0.0marking your certain critical changes or features

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

creating tags

To create a tag

git tag -a v1.0.0 -m "My first stable app release"

-a is for anotation-m for message

By default, tags are not pushed to a remote repository

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

creating tags

To create a tag

git tag -a v1.0.0 -m "My first stable app release"

-a is for anotation

-m for message

By default, tags are not pushed to a remote repository

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

creating tags

To create a tag

git tag -a v1.0.0 -m "My first stable app release"

-a is for anotation-m for message

By default, tags are not pushed to a remote repository

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

viewing tags

To view tags in your repogit tag show

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

creating stashes

I won’t talk much about this but !\ its useful when you want to

experimenting a new feature and don’t walk away from yourbranchyou are on the phone, and your boss is inviting you for quickmeetinganyting which can disrupt you from currently workingsituation, like leaving your editor for a while

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

creating stashes

I won’t talk much about this but !\ its useful when you want to

experimenting a new feature and don’t walk away from yourbranch

you are on the phone, and your boss is inviting you for quickmeetinganyting which can disrupt you from currently workingsituation, like leaving your editor for a while

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

creating stashes

I won’t talk much about this but !\ its useful when you want to

experimenting a new feature and don’t walk away from yourbranchyou are on the phone, and your boss is inviting you for quickmeeting

anyting which can disrupt you from currently workingsituation, like leaving your editor for a while

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

creating stashes

I won’t talk much about this but !\ its useful when you want to

experimenting a new feature and don’t walk away from yourbranchyou are on the phone, and your boss is inviting you for quickmeetinganyting which can disrupt you from currently workingsituation, like leaving your editor for a while

Muna A.H @abdimuna1 Git’s way

#whoamiGit

ConfigsGit fundamentalsBranchingTagsstashesEnd

outro

. . . Q/A, & #∫(happycoding)dt

Muna A.H @abdimuna1 Git’s way

top related