SlideShare a Scribd company logo
1 of 32
Download to read offline
www.atmire.com
Introduction to Github
Modern source code management for DSpace
Ivan Masár
Bram Luyten
OUTLINE
What are Git and Github
Using Git and Github locally at your
institution
Contributing back to DSpace
WHAT ARE GIT AND GITHUB
Decentralized source code management protocol
Free web based software project hosting
Git is used as underlying source code
management protocol
TRADITIONAL SOURCE CODE MANAGEMENT
GIT
USING GIT AND GITHUB
Creating an account on Github
Contributing through the Github Web UI
Installing Git on your laptop
Using Git on Windows
CREATING AN ACCOUNT ON GITHUB.COM
Signup on Github.com
FORK THE DSPACE PROJECT
http://github.com/DSpace/DSpace
MODIFYING THE CODE IN YOUR OWN FORK
Create a new branch. Do NOT work on master
EDIT DSPACE.CFG
Standard mode
EDIT DSPACE.CFG
Zen mode
PREVIEW: OVERVIEW OF CHANGES
Red line: deleted - Green line: added
INSTALLING GIT ON WINDOWS (1)
INSTALLING GIT ON WINDOWS (2)
INSTALLING GIT ON WINDOWS (3)
INSTALLING GIT ON WINDOWS (4)
Run > bash
USING GIT ON WINDOWS
Edit & Paste into Bash interpreter
WORKING WITH REMOTE REPOSITORIES (1)
git remote add upstream git://github.com/DSpace/DSpace.git
upstream is the local name for this remote repository
the url is now associated with the name “upstream”
git fetch upstream
getting up to date list of branches from the remote
repository.
git pull upstream master
get the actual changes of the master branch and merge
them with your local code.
Goal: keeping your repository up to date
WORKING WITH A LOCAL BRANCH
git branch
lists branches and tells you which branch you’re on
git branch mylocalbugfix
create a branch from the current branch you’re on
git checkout mylocalbugfix
move to the branch you just created
git checkout master
go back to the master branch
git branch -d mylocalbugfix
deleting the branch you just created. This will give you a
warning if the code is still only in your local clone. -D allows
you to force delete
git branch -D mylocalbugfix
COMMITTING TO YOUR LOCAL BRANCH
git commit -a
This will commit all current changes and open up your editor to
provide a commit message.
-a will commit all current changes
An alternative is that you explicitly specify which files need to
be committed.
git add path/to/file
MORE ON THE COMMAND LINE GIT
http://bit.ly/learning-git
DSPACE CONTRIBUTION WORKFLOW
Lowering your own maintenance costs
Prestige and achievement
Giving & receiving community support
Learn from others
Fun
BUG TRACKING AND FEATURE REQUESTS
http://jira.duraspace.org/browse/DS
CREATING A NEW JIRA ISSUE
HIGHLEVEL DSPACE GITHUB WORKFLOW
“Fork”
Contributor copies the DSpace code repository
to his/her own Github account
“Clone”
Checks out a local copy of the newly created fork
“Branch”
Creates a branch for development work related
to a particular issue in JIRA
“Commit”
Modifying the code locally
“Publish Branch”
Pushing your changes to your personal Github
account
FINAL STEP: FIRING YOUR PULL REQUEST
Done! Your code can now be
evaluated for inclusion
AFTER FIRING THE PULL REQUEST
Generally, your code will be evaluated by 2
committers prior to inclusion
Further discussion about your approach
can follow on JIRA or in Github comments
You can help the committers by doing your
own evaluation on pull requests
by others
www.atmire.com
We look forward to
your contributions!
http://jira.duraspace.org/browse/DS
http://github.com/DSpace/DSpace
https://wiki.duraspace.org/display/DSPACE/Development+with+Git
CREDITS
http://earaya.github.io/glearn/#/2/6
http://git.or.cz/course/svn.html
http://pcottle.github.io/learnGitBranching/

More Related Content

What's hot

Git basics a starter on git and its ecosystem
Git basics  a starter on git and its ecosystemGit basics  a starter on git and its ecosystem
Git basics a starter on git and its ecosystem
François D'Agostini
 

What's hot (20)

Workflows using Git GitHub | Edureka
Workflows using Git GitHub | EdurekaWorkflows using Git GitHub | Edureka
Workflows using Git GitHub | Edureka
 
Git
GitGit
Git
 
Unlimited Staging Environments on Kubernetes
Unlimited Staging Environments on KubernetesUnlimited Staging Environments on Kubernetes
Unlimited Staging Environments on Kubernetes
 
Introduction to Git and GitHub Part 1
Introduction to Git and GitHub Part 1Introduction to Git and GitHub Part 1
Introduction to Git and GitHub Part 1
 
Version control git day03
Version control   git day03Version control   git day03
Version control git day03
 
Advance workshop on git
Advance workshop on gitAdvance workshop on git
Advance workshop on git
 
What the Git? - WordCamp Atlanta
What the Git? - WordCamp AtlantaWhat the Git? - WordCamp Atlanta
What the Git? - WordCamp Atlanta
 
Git & Github
Git & GithubGit & Github
Git & Github
 
Hacking Git and GitHub
Hacking Git and GitHubHacking Git and GitHub
Hacking Git and GitHub
 
Git and GitHub workflows
Git and GitHub workflowsGit and GitHub workflows
Git and GitHub workflows
 
Know the Science behind WorkFlows using Git & GitHhub
Know the Science behind WorkFlows using Git & GitHhubKnow the Science behind WorkFlows using Git & GitHhub
Know the Science behind WorkFlows using Git & GitHhub
 
Git n git hub
Git n git hubGit n git hub
Git n git hub
 
Extra bit with git
Extra bit with gitExtra bit with git
Extra bit with git
 
Git presentation
Git presentationGit presentation
Git presentation
 
Git representation
Git representationGit representation
Git representation
 
Git & GitHub
Git & GitHubGit & GitHub
Git & GitHub
 
Gitlab Training with GIT and SourceTree
Gitlab Training with GIT and SourceTreeGitlab Training with GIT and SourceTree
Gitlab Training with GIT and SourceTree
 
Git basics a starter on git and its ecosystem
Git basics  a starter on git and its ecosystemGit basics  a starter on git and its ecosystem
Git basics a starter on git and its ecosystem
 
沒有 GUI 的 Git
沒有 GUI 的 Git沒有 GUI 的 Git
沒有 GUI 的 Git
 
Extra bit with git
Extra bit with gitExtra bit with git
Extra bit with git
 

Similar to Using Github for DSpace development

Git Distributed Version Control System
Git   Distributed Version Control SystemGit   Distributed Version Control System
Git Distributed Version Control System
Victor Wong
 
Version control git day03(amarnath dada)
Version control   git day03(amarnath dada)Version control   git day03(amarnath dada)
Version control git day03(amarnath dada)
Gourav Varma
 
Git 入门与实践
Git 入门与实践Git 入门与实践
Git 入门与实践
Terry Wang
 

Similar to Using Github for DSpace development (20)

Introduction to git and Github
Introduction to git and GithubIntroduction to git and Github
Introduction to git and Github
 
Improving your workflow with git
Improving your workflow with gitImproving your workflow with git
Improving your workflow with git
 
Github By Nyros Developer
Github By Nyros DeveloperGithub By Nyros Developer
Github By Nyros Developer
 
Git.pptx
Git.pptxGit.pptx
Git.pptx
 
Practical git for developers
Practical git for developersPractical git for developers
Practical git for developers
 
Git Commands Every Developer Should Know?
Git Commands Every Developer Should Know?Git Commands Every Developer Should Know?
Git Commands Every Developer Should Know?
 
Introduction to Git and Github
Introduction to Git and GithubIntroduction to Git and Github
Introduction to Git and Github
 
Version control git day02
Version control   git day02Version control   git day02
Version control git day02
 
Git for developers
Git for developersGit for developers
Git for developers
 
git github PPT_GDSCIIITK.pptx
git github PPT_GDSCIIITK.pptxgit github PPT_GDSCIIITK.pptx
git github PPT_GDSCIIITK.pptx
 
Git single branch
Git single branchGit single branch
Git single branch
 
Introduction to Git and Github
Introduction to Git and GithubIntroduction to Git and Github
Introduction to Git and Github
 
Git
GitGit
Git
 
Introduction to Git
Introduction to GitIntroduction to Git
Introduction to Git
 
Git Distributed Version Control System
Git   Distributed Version Control SystemGit   Distributed Version Control System
Git Distributed Version Control System
 
Git
GitGit
Git
 
Switching to Git
Switching to GitSwitching to Git
Switching to Git
 
Version control git day03(amarnath dada)
Version control   git day03(amarnath dada)Version control   git day03(amarnath dada)
Version control git day03(amarnath dada)
 
Mini-training: Let’s Git It!
Mini-training: Let’s Git It!Mini-training: Let’s Git It!
Mini-training: Let’s Git It!
 
Git 入门与实践
Git 入门与实践Git 入门与实践
Git 入门与实践
 

More from Bram Luyten

More from Bram Luyten (20)

Archiving Sensitive Data
Archiving Sensitive DataArchiving Sensitive Data
Archiving Sensitive Data
 
Update on DSpace 7
Update on DSpace 7Update on DSpace 7
Update on DSpace 7
 
DSpace 5.7 and 6.1 Preview
DSpace 5.7 and 6.1 PreviewDSpace 5.7 and 6.1 Preview
DSpace 5.7 and 6.1 Preview
 
Working for Atmire
Working for AtmireWorking for Atmire
Working for Atmire
 
DSpace repositories today and tomorrow
DSpace repositories today and tomorrowDSpace repositories today and tomorrow
DSpace repositories today and tomorrow
 
DSpace UI prototype dsember
DSpace UI prototype dsemberDSpace UI prototype dsember
DSpace UI prototype dsember
 
Metadata based statistics for DSpace
Metadata based statistics for DSpaceMetadata based statistics for DSpace
Metadata based statistics for DSpace
 
Durable Item Relations for DSpace
Durable Item Relations for DSpaceDurable Item Relations for DSpace
Durable Item Relations for DSpace
 
Email deposit
Email depositEmail deposit
Email deposit
 
So we all have ORCID integrations, now what?
So we all have ORCID integrations, now what?So we all have ORCID integrations, now what?
So we all have ORCID integrations, now what?
 
Git and Github - a 90 Minute interactive workshop
Git and Github - a 90 Minute interactive workshopGit and Github - a 90 Minute interactive workshop
Git and Github - a 90 Minute interactive workshop
 
DSpace Today and Tomorrow
DSpace Today and TomorrowDSpace Today and Tomorrow
DSpace Today and Tomorrow
 
Mirage 2: A responsive user interface for DSpace
Mirage 2: A responsive user interface for DSpaceMirage 2: A responsive user interface for DSpace
Mirage 2: A responsive user interface for DSpace
 
Dépôts institutionnels et collections spéciales en DSpace
Dépôts institutionnels et collections spéciales en DSpaceDépôts institutionnels et collections spéciales en DSpace
Dépôts institutionnels et collections spéciales en DSpace
 
Secrets of the DSpace Submission Form
Secrets of the DSpace Submission FormSecrets of the DSpace Submission Form
Secrets of the DSpace Submission Form
 
Introduction to XMLUI and Mirage Theming for DSpace 3
Introduction to XMLUI and Mirage Theming for DSpace 3Introduction to XMLUI and Mirage Theming for DSpace 3
Introduction to XMLUI and Mirage Theming for DSpace 3
 
What's in Store for DSpace 4?
What's in Store for DSpace 4?What's in Store for DSpace 4?
What's in Store for DSpace 4?
 
ORCID for DSpace
ORCID for DSpaceORCID for DSpace
ORCID for DSpace
 
Workshop: Google Analytics for DSpace
Workshop: Google Analytics for DSpaceWorkshop: Google Analytics for DSpace
Workshop: Google Analytics for DSpace
 
DSpace in Belgium and beyond
DSpace in Belgium and beyondDSpace in Belgium and beyond
DSpace in Belgium and beyond
 

Recently uploaded

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Recently uploaded (20)

08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 

Using Github for DSpace development

  • 1. www.atmire.com Introduction to Github Modern source code management for DSpace Ivan Masár Bram Luyten
  • 2. OUTLINE What are Git and Github Using Git and Github locally at your institution Contributing back to DSpace
  • 3. WHAT ARE GIT AND GITHUB Decentralized source code management protocol Free web based software project hosting Git is used as underlying source code management protocol
  • 5. GIT
  • 6. USING GIT AND GITHUB Creating an account on Github Contributing through the Github Web UI Installing Git on your laptop Using Git on Windows
  • 7. CREATING AN ACCOUNT ON GITHUB.COM Signup on Github.com
  • 8. FORK THE DSPACE PROJECT http://github.com/DSpace/DSpace
  • 9. MODIFYING THE CODE IN YOUR OWN FORK Create a new branch. Do NOT work on master
  • 12. PREVIEW: OVERVIEW OF CHANGES Red line: deleted - Green line: added
  • 13. INSTALLING GIT ON WINDOWS (1)
  • 14. INSTALLING GIT ON WINDOWS (2)
  • 15. INSTALLING GIT ON WINDOWS (3)
  • 16. INSTALLING GIT ON WINDOWS (4) Run > bash
  • 17.
  • 18. USING GIT ON WINDOWS Edit & Paste into Bash interpreter
  • 19.
  • 20.
  • 21. WORKING WITH REMOTE REPOSITORIES (1) git remote add upstream git://github.com/DSpace/DSpace.git upstream is the local name for this remote repository the url is now associated with the name “upstream” git fetch upstream getting up to date list of branches from the remote repository. git pull upstream master get the actual changes of the master branch and merge them with your local code. Goal: keeping your repository up to date
  • 22. WORKING WITH A LOCAL BRANCH git branch lists branches and tells you which branch you’re on git branch mylocalbugfix create a branch from the current branch you’re on git checkout mylocalbugfix move to the branch you just created git checkout master go back to the master branch git branch -d mylocalbugfix deleting the branch you just created. This will give you a warning if the code is still only in your local clone. -D allows you to force delete git branch -D mylocalbugfix
  • 23. COMMITTING TO YOUR LOCAL BRANCH git commit -a This will commit all current changes and open up your editor to provide a commit message. -a will commit all current changes An alternative is that you explicitly specify which files need to be committed. git add path/to/file
  • 24. MORE ON THE COMMAND LINE GIT http://bit.ly/learning-git
  • 25. DSPACE CONTRIBUTION WORKFLOW Lowering your own maintenance costs Prestige and achievement Giving & receiving community support Learn from others Fun
  • 26. BUG TRACKING AND FEATURE REQUESTS http://jira.duraspace.org/browse/DS
  • 27. CREATING A NEW JIRA ISSUE
  • 28. HIGHLEVEL DSPACE GITHUB WORKFLOW “Fork” Contributor copies the DSpace code repository to his/her own Github account “Clone” Checks out a local copy of the newly created fork “Branch” Creates a branch for development work related to a particular issue in JIRA “Commit” Modifying the code locally “Publish Branch” Pushing your changes to your personal Github account
  • 29. FINAL STEP: FIRING YOUR PULL REQUEST Done! Your code can now be evaluated for inclusion
  • 30. AFTER FIRING THE PULL REQUEST Generally, your code will be evaluated by 2 committers prior to inclusion Further discussion about your approach can follow on JIRA or in Github comments You can help the committers by doing your own evaluation on pull requests by others
  • 31. www.atmire.com We look forward to your contributions! http://jira.duraspace.org/browse/DS http://github.com/DSpace/DSpace https://wiki.duraspace.org/display/DSPACE/Development+with+Git