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
 
Upstreaming 1013
Upstreaming 1013Upstreaming 1013
Upstreaming 1013Linaro
 
LCA13: Upstreaming 101
LCA13: Upstreaming 101LCA13: Upstreaming 101
LCA13: Upstreaming 101Linaro
 
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
 
Upstreaming 1013
Upstreaming 1013Upstreaming 1013
Upstreaming 1013
 
LCA13: Upstreaming 101
LCA13: Upstreaming 101LCA13: Upstreaming 101
LCA13: Upstreaming 101
 
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

call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Mark Reed
 
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSGRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSJoshuaGantuangco2
 
Full Stack Web Development Course for Beginners
Full Stack Web Development Course  for BeginnersFull Stack Web Development Course  for Beginners
Full Stack Web Development Course for BeginnersSabitha Banu
 
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)lakshayb543
 
4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptx4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptxmary850239
 
ACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfSpandanaRallapalli
 
Judging the Relevance and worth of ideas part 2.pptx
Judging the Relevance  and worth of ideas part 2.pptxJudging the Relevance  and worth of ideas part 2.pptx
Judging the Relevance and worth of ideas part 2.pptxSherlyMaeNeri
 
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxMULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxAnupkumar Sharma
 
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17Celine George
 
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxiammrhaywood
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Celine George
 
Gas measurement O2,Co2,& ph) 04/2024.pptx
Gas measurement O2,Co2,& ph) 04/2024.pptxGas measurement O2,Co2,& ph) 04/2024.pptx
Gas measurement O2,Co2,& ph) 04/2024.pptxDr.Ibrahim Hassaan
 
DATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginnersDATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginnersSabitha Banu
 
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxINTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxHumphrey A Beña
 
Q4 English4 Week3 PPT Melcnmg-based.pptx
Q4 English4 Week3 PPT Melcnmg-based.pptxQ4 English4 Week3 PPT Melcnmg-based.pptx
Q4 English4 Week3 PPT Melcnmg-based.pptxnelietumpap1
 

Recently uploaded (20)

Raw materials used in Herbal Cosmetics.pptx
Raw materials used in Herbal Cosmetics.pptxRaw materials used in Herbal Cosmetics.pptx
Raw materials used in Herbal Cosmetics.pptx
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
 
Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)
 
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdfTataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
 
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSGRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
 
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptxLEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
 
Full Stack Web Development Course for Beginners
Full Stack Web Development Course  for BeginnersFull Stack Web Development Course  for Beginners
Full Stack Web Development Course for Beginners
 
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
 
4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptx4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptx
 
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptxFINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
 
ACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdf
 
Judging the Relevance and worth of ideas part 2.pptx
Judging the Relevance  and worth of ideas part 2.pptxJudging the Relevance  and worth of ideas part 2.pptx
Judging the Relevance and worth of ideas part 2.pptx
 
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxMULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
 
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
 
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17
 
Gas measurement O2,Co2,& ph) 04/2024.pptx
Gas measurement O2,Co2,& ph) 04/2024.pptxGas measurement O2,Co2,& ph) 04/2024.pptx
Gas measurement O2,Co2,& ph) 04/2024.pptx
 
DATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginnersDATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginners
 
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxINTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
 
Q4 English4 Week3 PPT Melcnmg-based.pptx
Q4 English4 Week3 PPT Melcnmg-based.pptxQ4 English4 Week3 PPT Melcnmg-based.pptx
Q4 English4 Week3 PPT Melcnmg-based.pptx
 

Git - May the source be with you - A tutorial