SlideShare a Scribd company logo
1 of 65
Download to read offline
GIT
May the source be with you
L.Spalazzi, F. Spegni, G. Taccari
DII ­ Università Politecnica delle Marche
Software Engineering Course Projects ­ 2012/2013
GIT – May the source be with you
2/65
Source code
● Hard to manage
● Many components ...
● Many files ...
● Many lines …
● Need tools to manage the complexity
● Version Control Systems
GIT – May the source be with you
3/65
Version Control Systems / PROs
● Keep track of:
● Current source code status
● Previous source code modifications (history)
● Different “lines” of development (branches)
● Allow to:
● Jump back & forth between modifications
● Merge modifications made by different developers
● Detect conflicting changes 
– Prevent inconsistencies
GIT – May the source be with you
4/65
Version Control Systems / CONs
● More copies of the source code
● One shared version (at least)
● Many “personal” version (developer side)
● No free lunch
● Always possible to restore things, but ...
● Easy to mess things in the repository
– Forget who added this piece of code …
– Easy to break dependencies
● Easy to loose local modifications
– Overwritten/deleted local modifications cannot be undone
GIT – May the source be with you
5/65
Version Control Systems / Types
● Different types
● Client­Server
– SVN, CVS, ...
● Distributed
– Git, Mercurial, ...
● Different interactions
GIT – May the source be with you
6/65
Version Control Systems / Centralized
GIT – May the source be with you
7/65
Version Control Systems / Centralized
● PROs
● Easier
– One reference (THE server)
● CONs
● Availability
– No network, no party
● Single­Point­of­Failure
● Waste of space
– Every branch copies all the 
files
GIT – May the source be with you
8/65
Version Control Systems / Distributed
GIT – May the source be with you
9/65
Version Control Systems / Distributed
● PROs
● Availability
– Every developer can have it all
● Redundance
● Save space
– Only modified files are copied 
(lazy approach)
● Social development
● CONs
● More complex
– Also: more fun ;­)
GIT – May the source be with you
10/65
Git
● Version Control System
● Distributed
● Invented by Linus Torvalds
● Used by many FLOSS projects 
(social development)
● Bitbucket – www.bitbucket.org
● GitHub – www.github.com
● 3 … 2 … 1 ... Ignition ...
GIT – May the source be with you
11/65
Start to develop
● Scenario
● A remote shared repository already exists, let's get the 
code and start develop
● The URL of the repository is: git://repository/project.git
$ git clone git://repository/project.git myproject
  ...
$ cd myproject
$ ls
app.yaml index.yaml main.py
GIT – May the source be with you
12/65
Edit files locally / 1
● Scenario
● We want to modify a local file (e.g. index.html)
$ vim main.py
  … do some work …
$ git status
# On branch master
# Changed but not updated
#   (use “git add <file> … to update …
#
# modified main.py
# 
no changes added to commit (use “git add” … )
GIT – May the source be with you
13/65
Edit files locally / 3
$ git add main.py
$ git status
# On branch master
# Changes to be committed
#   (use “git reset HEAD <file> …
#
# modified main.py
# 
GIT – May the source be with you
14/65
Edit files locally / 4
$ vim app.yaml
… do some work …
$ git status
# On branch master
# Changes to be committed:
#   (use “git reset HEAD <file>” …
#
# modified main.py
# 
# Changed but not updated:
#   (use “git add <file>” …
# 
# modified app.yaml
GIT – May the source be with you
15/65
Edit files locally / 5
$ vim main.py
… do some work on previously edited file …
$ git status
# On branch master
# Changes to be committed:
#   (use “git reset HEAD <file>” …
#
# modified main.py
# 
# Changed but not updated:
#   (use “git add <file>” …
# 
# modified app.yaml
# modified main.py
GIT – May the source be with you
16/65
Edit files locally / 6
$ git add app.yaml main.py
$ git status
# On branch master
# Changes to be committed:
#   (use “git reset HEAD <file>” …
#
# modified main.py
# modified app.yaml
GIT – May the source be with you
17/65
Edit files locally / 7
$ git commit
… an editor prompt appear …
# Please enter the commit message for your changes. Lines starting 
# with '#' will be ignored, and an empty message aborts the commit.
# On branch master
# Changes to be committed:
#   (use “git reset HEAD <file> …” to unstage)
#
#    modified app.yaml
#    modified main.py
GIT – May the source be with you
18/65
Edit files locally / 8
These are very important modifications!!!
# Please enter the commit message for your changes. Lines starting 
# with '#' will be ignored, and an empty message aborts the commit.
# On branch master
# Changes to be committed:
#   (use “git reset HEAD <file> …” to unstage)
#
#    modified app.yaml
#    modified main.py
GIT – May the source be with you
19/65
Edit files locally / 9
$ git commit
… control returns from editor …
Created commit XYZ: These are very important modifications
  2 files changed, M insertions(+), N deletions(­)
GIT – May the source be with you
20/65
Edit files locally / Break
● One modification, 
several statuses
● By default 
modifications are not 
added to the index
● In order to prevent 
messing the repository 
with temporary 
modifications
Working Directory
Index
Repository
git add
git commit
GIT – May the source be with you
21/65
Edit files locally / Break
● Basic workflow
● Edit
● Stage (git add)
● Review (git status)
● Confirm (git commit)
● Loop
Working Directory
Index
Repository
git add
git commit
GIT – May the source be with you
22/65
One feature, one branch / 1
● Scenario
● you have a copy of your 
source code and you are 
assigned to work on a 
specific feature of the project
● in order to keeps code clean, 
you can work on a different 
“branch” of the code
● in this way your code 
doesn't cause any troubles 
to others
$ git branch myfeature
* master
  myfeature
  remotes/origin/HEAD   …/master→
  remotes/origin/master
$ git checkout myfeature
$ git branch ­a 
  master
* myfeature
  remotes/origin/HEAD   …/master→
  remotes/origin/master
GIT – May the source be with you
23/65
One feature, one branch / 2
● Scenario
● you can jump back­and­forth between branches 
(without making modifications)
$ git checkout master
$ git branch ­a
* master
  myfeature
  remotes/origin/HEAD   origin/master→
  remotes/origin/master
$ git checkout myfeature
GIT – May the source be with you
24/65
One feature, one branch / 3
● What's going on?
● Commits form a graph
● Branches are labels to 
specific commits
● Git checkout
● Move the HEAD
C0 C1
master
myfeature
HEAD
GIT – May the source be with you
25/65
One feature, one branch / 3
$ git checkout myfeature
● Move the HEAD
C0 C1
master
myfeature
HEAD
GIT – May the source be with you
26/65
One feature, one branch / 4
● Start working on the 
new branch …
… do some work …
$ git add file1 file2 …
$ git commit
Created commit C2 …  myfeature
C2C0 C1
master
HEAD
GIT – May the source be with you
27/65
One feature, one branch / 5
● One branch is not 
enough … 
C3
$ git checkout master
… modify files …
$ git add file1 file2 …
$ git commit
Created commit C3 … 
myfeature
C2C0 C1
master
HEAD
GIT – May the source be with you
28/65
One feature, one branch / 6
● Put everything together
● Merge modifications
● Solve conflicts
● Create new commit (C4)
$ git merge myfeature
C0 C1
master
myfeature
HEAD
C2
C3 C4
GIT – May the source be with you
29/65
One feature, one branch / 7
● Two outcomes
● Non­conflicting merge
● Happy!!! :­)
$ git merge myfeature
Updating …
Fast­forward
  … 
  X files changed, Y insertions (+), Z deletions (­)
  … 
$ git commit ­a ­m 'Merged myfeature in master'
Created commit C4
C0 C1
master
myfeature
HEAD
C2
C3 C4
GIT – May the source be with you
30/65
One feature, one branch / 8
● Two outcomes
● Conflicting merge
● When the going gets tough … ;­) 
$ git merge myfeature
Auto­merging main.py
CONFLICT (content): Merge conflict in main.py
Automatic merge failed; fix conflicts and then commit 
the result.
C0 C1
master
myfeature
HEAD
C2
C3 C4
GIT – May the source be with you
31/65
One feature, one branch / 9
● Resolve a conflict
$ vim main.py
… switch to the editor … 
<<<<<<< HEAD:main.py
<div id="footer">contact : email.support@github.com</div>
=======
<div id="footer">
  please contact us at support@github.com
</div>
>>>>>>> myfeature:main.py
… edit your file and save … 
$ git commit ­a ­m 'Merged myfeature in master'
Created commit C4
C0 C1
master
myfeature
HEAD
C2
C3 C4
GIT – May the source be with you
32/65
One feature, one branch / 9
● Resolve a conflict (alternative)
$ git mergetool
merge tool candidates: kdiff3 tkdiff xxdiff meld gvimdiff 
opendiff emerge vimdiff
Merging the files: main.py
Normal merge conflict for 'main.py':
  {local}: modified
  {remote}: modified
Hit return to start merge resolution tool (meld):
… switch control to the tool … 
$ git commit ­a ­m 'Merged myfeature in master'
Created commit C4
C0 C1
master
myfeature
HEAD
C2
C3 C4
GIT – May the source be with you
33/65
What after?
● Continue to work on your branch, or …
● … you learnt how to do! ;­)
● … delete it!
$ git branch ­d myfeature
GIT – May the source be with you
34/65
What after?
● Continue to work on your branch, or …
● … you learnt how to do! ;­)
● … delete it!
$ git branch ­d myfeature
GIT – May the source be with you
35/65
So far, so good ...
● One way interaction
● One remote repository cloned into local repository
● Local changes made
● Local changes have been committed to local repository
● When/How do we share code?!?
GIT – May the source be with you
36/65
Spread the code ...
Developer 1
Developer 2
(1)
git clone
(2)
git push
(3)
git checkout / pull
git clone
(1)
git push
(2)
git checkout / pull
(3)
git add / commit / branch /
checkout / merge
git add / commit / branch /
checkout / merge
GIT – May the source be with you
37/65
Push a local branch to remote ­ 1
● Scenario
● You created a 
local branch 
myfeature and 
now you want to 
share that code 
with your 
colleegues
$ git checkout myfeature
$ git branch ­a
  master
* myfeature
  remotes/origin/HEAD   origin/master→
  remotes/origin/master
    … work … git add … git commit …
$ git push origin myfeature
$ git branch ­a
  master
* myfeature
  remotes/origin/HEAD   origin/master→
  remotes/origin/master
  remotes/origin/myfeature
GIT – May the source be with you
38/65
Push a local branch to remote ­ 2
● Problem
● What if two developers push on the same repository and branch 
concurrently?!? Solution: the second needs to do “git pull ...”
Develper 1
$ git push origin foo
Password for …
Counting objects: 4, done.
Delta compression using up to 2 
threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 299 bytes, 
done.
…
Developer 2
$ git push origin foo
Password for https://...
To https://...
 ! [rejected]        foo ­> foo (non­fast­
forward)
error: failed to push some refs to 
'https://...'
hint: Updates were rejected because the tip 
of your current branch is behind its remote 
counterpart. Merge the remote changes (e.g. 
'git pull') before pushing again. See the 
'Note about fast­forwards' in 'git push 
­­help' for details.
GIT – May the source be with you
39/65
Fetch a remote branch
● Scenario
● You want to import a remote branch in your local 
repository, and start to work with it (the first time)
$ git branch ­a
* master
  remotes/origin/HEAD   origin/master→
  remotes/origin/master
  remotes/origin/myfeature
$ git checkout ­­track origin/myfeature
Switched to a new branch 'myfeature'
$ git branch ­a
  master
* myfeature
  remotes/origin/HEAD   origin/master→
  remotes/origin/master
  remotes/origin/myfeature
GIT – May the source be with you
40/65
Pull modifications from a remote branch
● Scenario
● You already fetched a remote branch; your colleegues 
updated the code; they pulled their code on the shared 
repository and you want to import that code
$ git branch ­a
  master
* myfeature
  remotes/origin/HEAD   origin/master→
  remotes/origin/master
  remotes/origin/myfeature
$ git pull origin myfeature
… summary of modifications and auto­merge result … 
GIT – May the source be with you
41/65
Last steps / Without hands ...
● A local repository can be linked to more remote 
repositories
● Code can be merged from different repositories
● Social development
● Work on a common projects
● Experiment independently from mainstream
GIT – May the source be with you
42/65
Remote Repositories / 1
● Workflow
● Group1 creates the mainstream repository R1
● Group2 creates repository R2 as a fork of R1 in order to work 
independently
– Forks can be created using the site interface (Bitbucket, GitHub, …)
● Dev2.1 from Group2 git­clone R2 and creates LR2.1
– LR2.1 ­­(remote)­­> R2
● Dev2.1 wants to track changes in R1 also
– Social development
● Dev2 add a remote
– LR2.1 ­­(remote)­­> R2
– LR2.1 ­­(remote)­­> R1
GIT – May the source be with you
43/65
Remote Repositories / 2
● A remote repository (or just “remote”) is added to 
the local repository
$ git remote add mainstream git://URL/project.git
$ git fetch mainstream
$ git branch ­a
* master
  remotes/origin/HEAD   origin/master→
  remotes/origin/master
  remotes/origin/myfeature
  remotes/mainstream/master
GIT – May the source be with you
44/65
Remote Repositories / 3
● Scenario
● The mainstream developers added a very important 
feature, your project must integrate it
$ git pull mainstream master
# alternative solution 
# (not my favourite, because it fetches
# all the branches in remote mainstream)
$ git fetch mainstrea
$ git merge mainstream/master
GIT – May the source be with you
45/65
Final Tricks / 1
● Scenario
● You made some local modification after the last commit / 
merge. Finally you realize you want to discard your work 
and go back to the last “stable” code you get from the 
repository
$ vim file1
… do some work …
$ git status
# … show staged/unstaged modifications …
$ git stash save
$ git diff # this produce no output
$ git stash drop # if you want to delete it forever
$ git stash apply # if you want to have your changes back
GIT – May the source be with you
46/65
Final Tricks / 2
● Scenario
● Where does this code come from?!? You cloned a repository, worked 
with it for a few months (years?!?) and you don't remember where is 
your code from (URL, repository name, … )
$ cd <PROJECT_HOME>
$ vim .git/config
… your project git config appear in your editor (vim) …
GIT – May the source be with you
47/65
Git & Eclipse / 1
$ git clone …
GIT – May the source be with you
48/65
Git & Eclipse / 2
$ git clone …
GIT – May the source be with you
49/65
Git & Eclipse / 3
$ git clone …
GIT – May the source be with you
50/65
Git & Eclipse / 4
$ git add … 
$ git commit … 
GIT – May the source be with you
51/65
Git & Eclipse / 5
$ git add … 
$ git commit … 
GIT – May the source be with you
52/65
Git & Eclipse / 6
$ git branch / checkout / merge
GIT – May the source be with you
53/65
Git & Eclipse / 7
$ git branch / checkout / merge
GIT – May the source be with you
54/65
Git & Eclipse / 8
$ git branch / checkout / merge
GIT – May the source be with you
55/65
Git & Eclipse / 9
$ git branch / checkout / merge
GIT – May the source be with you
56/65
Git & Eclipse / 10
$ git push … 
GIT – May the source be with you
57/65
Git & Eclipse / 11
$ git push … 
GIT – May the source be with you
58/65
Git & Eclipse / 5
$ git remote add … 
$ git remote del … 
GIT – May the source be with you
59/65
Git & Eclipse / 6
$ git stash save … 
$ git stash delete … 
GIT – May the source be with you
60/65
Final remarks
● Sometimes LESS IS MORE … 
● … not with Version Control Systems (VCSs)
● … not with GIT
● Steep learning curve
● It pays­off
● Other VCSs are simpler to learn
● … but less powerful
GIT – May the source be with you
61/65
References for the SW­Eng Projects
● Core project:
● Site: 
https://smc.dii.univpm.it/smc
● Git: 
https://<utente>@bitbucket.org/smcteam/smc.git
● Students project:
● Site: 
https://smc.dii.univpm.it/ids1213g<NUM>
https://smc.dii.univpm.it/idstid1213g<NUM>
e.g.
https://smc.dii.univpm.it/ids1213g01
● Git:
https://<utente>@bitbucket.org/smcteam/ids1213g<NUM>.git
https://<utente>@bitbucket.org/smcteam/idstid1213g<NUM>.git
e.g.
https://fspegni@bitbucket.org/smcteam/ids1213g01.git
Use the force!
Questions?
GIT – May the source be with you
63/65
Dictionary / Words matter / 1
● Repository
● A directory containing some shared code. The repository is usually hosted in 
some server and is thus characterized by a URL
● Clone
● Action with which the content of a (remote) repository is copied in the local 
workspace
● Add
● Action used to stage a modified file
● Commit
● An action with which staged modifications are added to the repository
● Staged:
● A modification is staged when it has been marked as ready to be committed
GIT – May the source be with you
64/65
Dictionary / Words matter / 2
● Branch
● In the graph of the commits, it is a new line of development. A 
branch has a name which refers to the last commit in that line 
of development. Every repository has a main branch usually 
called master
● Merge
● The action with which the code of two branches is unified
● Conflict
● A state where two modifications have been made in the same 
file. In this case it is important to resolve the conflict, meaning 
that a programmer should approve/discard one/both of the 
modifications to the file
GIT – May the source be with you
65/65
Credits
● http://git­scm.com/
The tool
● http://git­scm.com/book
THE book
● https://github.com/schacon/git­presentations
This is a examples and many things ...
● http://docs.joomla.org
For the Centralized/Distributed VCS images
● http://www.github.com
For the background

More Related Content

Similar to Git - May the source be with you - A tutorial

Hackaton for health 2015 - Sharing the Code we Make
Hackaton for health 2015 - Sharing the Code we MakeHackaton for health 2015 - Sharing the Code we Make
Hackaton for health 2015 - Sharing the Code we Makeesben1962
 
Overview of Gitlab usage
Overview of Gitlab usageOverview of Gitlab usage
Overview of Gitlab usageOluDouglas
 
The adoption of FOSS workfows in commercial software development: the case of...
The adoption of FOSS workfows in commercial software development: the case of...The adoption of FOSS workfows in commercial software development: the case of...
The adoption of FOSS workfows in commercial software development: the case of...dmgerman
 
Reproducibility and automation of machine learning process
Reproducibility and automation of machine learning processReproducibility and automation of machine learning process
Reproducibility and automation of machine learning processDenis Dus
 
Effective development of a finite-element solver at the University
Effective development of a finite-element solver at the UniversityEffective development of a finite-element solver at the University
Effective development of a finite-element solver at the UniversityRomain Boman
 
Version Control, Writers, and Workflows
Version Control, Writers, and WorkflowsVersion Control, Writers, and Workflows
Version Control, Writers, and Workflowsstc-siliconvalley
 
You can git
You can gitYou can git
You can gitYu GUAN
 
Source Control with Domino Designer 8.5.3 and Git (DanNotes, November 28, 2012)
Source Control with Domino Designer 8.5.3 and Git (DanNotes, November 28, 2012)Source Control with Domino Designer 8.5.3 and Git (DanNotes, November 28, 2012)
Source Control with Domino Designer 8.5.3 and Git (DanNotes, November 28, 2012)Per Henrik Lausten
 
GDSC23 - Github Workshop Presentation.pptx
GDSC23 - Github Workshop Presentation.pptxGDSC23 - Github Workshop Presentation.pptx
GDSC23 - Github Workshop Presentation.pptxChitreshGyanani1
 
Open Source Swift Under the Hood
Open Source Swift Under the HoodOpen Source Swift Under the Hood
Open Source Swift Under the HoodC4Media
 
LCA13: Upstreaming 101
LCA13: Upstreaming 101LCA13: Upstreaming 101
LCA13: Upstreaming 101Linaro
 
Upstreaming 1013
Upstreaming 1013Upstreaming 1013
Upstreaming 1013Linaro
 
Components license
Components licenseComponents license
Components licensedmgerman
 
QCon'17 talk: CI/CD at scale - lessons from LinkedIn and Mockito
QCon'17 talk: CI/CD at scale - lessons from LinkedIn and MockitoQCon'17 talk: CI/CD at scale - lessons from LinkedIn and Mockito
QCon'17 talk: CI/CD at scale - lessons from LinkedIn and MockitoSzczepan Faber
 

Similar to Git - May the source be with you - A tutorial (20)

Hackaton for health 2015 - Sharing the Code we Make
Hackaton for health 2015 - Sharing the Code we MakeHackaton for health 2015 - Sharing the Code we Make
Hackaton for health 2015 - Sharing the Code we Make
 
Overview of Gitlab usage
Overview of Gitlab usageOverview of Gitlab usage
Overview of Gitlab usage
 
The adoption of FOSS workfows in commercial software development: the case of...
The adoption of FOSS workfows in commercial software development: the case of...The adoption of FOSS workfows in commercial software development: the case of...
The adoption of FOSS workfows in commercial software development: the case of...
 
Mini-training: Let’s Git It!
Mini-training: Let’s Git It!Mini-training: Let’s Git It!
Mini-training: Let’s Git It!
 
Reproducibility and automation of machine learning process
Reproducibility and automation of machine learning processReproducibility and automation of machine learning process
Reproducibility and automation of machine learning process
 
Effective development of a finite-element solver at the University
Effective development of a finite-element solver at the UniversityEffective development of a finite-element solver at the University
Effective development of a finite-element solver at the University
 
3 Git
3 Git3 Git
3 Git
 
Version Control, Writers, and Workflows
Version Control, Writers, and WorkflowsVersion Control, Writers, and Workflows
Version Control, Writers, and Workflows
 
You can git
You can gitYou can git
You can git
 
Introduction to git & github
Introduction to git & githubIntroduction to git & github
Introduction to git & github
 
Git and GitHub.pptx
Git and GitHub.pptxGit and GitHub.pptx
Git and GitHub.pptx
 
Git workshop
Git workshopGit workshop
Git workshop
 
Source Control with Domino Designer 8.5.3 and Git (DanNotes, November 28, 2012)
Source Control with Domino Designer 8.5.3 and Git (DanNotes, November 28, 2012)Source Control with Domino Designer 8.5.3 and Git (DanNotes, November 28, 2012)
Source Control with Domino Designer 8.5.3 and Git (DanNotes, November 28, 2012)
 
GDSC23 - Github Workshop Presentation.pptx
GDSC23 - Github Workshop Presentation.pptxGDSC23 - Github Workshop Presentation.pptx
GDSC23 - Github Workshop Presentation.pptx
 
Open Source Swift Under the Hood
Open Source Swift Under the HoodOpen Source Swift Under the Hood
Open Source Swift Under the Hood
 
LCA13: Upstreaming 101
LCA13: Upstreaming 101LCA13: Upstreaming 101
LCA13: Upstreaming 101
 
Upstreaming 1013
Upstreaming 1013Upstreaming 1013
Upstreaming 1013
 
Components license
Components licenseComponents license
Components license
 
QCon'17 talk: CI/CD at scale - lessons from LinkedIn and Mockito
QCon'17 talk: CI/CD at scale - lessons from LinkedIn and MockitoQCon'17 talk: CI/CD at scale - lessons from LinkedIn and Mockito
QCon'17 talk: CI/CD at scale - lessons from LinkedIn and Mockito
 
Git for Windows
Git for WindowsGit for Windows
Git for Windows
 

Recently uploaded

POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxSayali Powar
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactdawncurless
 
Introduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher EducationIntroduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher Educationpboyjonauth
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationnomboosow
 
Separation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesSeparation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesFatimaKhan178732
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104misteraugie
 
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...Marc Dusseiller Dusjagr
 
CARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxCARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxGaneshChakor2
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxheathfieldcps1
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxiammrhaywood
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdfSoniaTolstoy
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphThiyagu K
 
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Krashi Coaching
 
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptxContemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptxRoyAbrique
 
URLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website AppURLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website AppCeline George
 
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991RKavithamani
 
Privatization and Disinvestment - Meaning, Objectives, Advantages and Disadva...
Privatization and Disinvestment - Meaning, Objectives, Advantages and Disadva...Privatization and Disinvestment - Meaning, Objectives, Advantages and Disadva...
Privatization and Disinvestment - Meaning, Objectives, Advantages and Disadva...RKavithamani
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdfQucHHunhnh
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityGeoBlogs
 

Recently uploaded (20)

POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impact
 
Introduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher EducationIntroduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher Education
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communication
 
Separation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesSeparation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and Actinides
 
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104
 
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
 
CARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxCARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptx
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot Graph
 
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
 
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptxContemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
 
URLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website AppURLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website App
 
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
 
Privatization and Disinvestment - Meaning, Objectives, Advantages and Disadva...
Privatization and Disinvestment - Meaning, Objectives, Advantages and Disadva...Privatization and Disinvestment - Meaning, Objectives, Advantages and Disadva...
Privatization and Disinvestment - Meaning, Objectives, Advantages and Disadva...
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activity
 

Git - May the source be with you - A tutorial