SlideShare a Scribd company logo
1 of 49
Download to read offline
OPENNTF WEBINARS
August 2021 Webinar – Git and GitHub Explained
With Paul Withers and Jesse Gallagher
AGENDA
• Welcome – Graham Acres
• Paul Withers and Jesse Gallagher
• Questions – Graham Acres
ASKING QUESTIONS
• First Question – Will this be recorded?
• Yes, view on YouTube!!!
• https://www.youtube.com/user/OpenNTF
• Use the Questions Pane in GoToWebinar
• We will get to your questions at the end of
the webinar
• The speakers will respond to your questions
verbally
• (not in the Questions pane)
• Please keep all questions related to the
topics that our speakers are discussing!!!
• Unrelated Question => post at:
• http://openntf.slack.com/
THANKS TO THE OPENNTF SPONSORS
• HCL made a contribution to help our organization
• Funds these webinars!
• Contests like Hackathons
• Running the organization
• Prominic donates all IT related services
• Cloud Hosting for OpenNTF
• Infrastructure management for HCL Domino and Atlassian
Servers
• System Administration for day-to-day operation
THIS IS OUR COMMUNITY
• Join us and get involved!
• We are all volunteers
• No effort is too small
• If your idea is bigger than you can do on your own, we
can connect you to a team to work on it
• Test or help or modify an existing project
• Write guides or documentation
• Add reviews on projects / stars on Snippets
NEXT WEBINAR
• September 23, 2021
• Domino Online Meeting Integration (DOMI)
• Paul Withers, Devin Olson, Rocky Oliver
• Signup at https://openntf.org/webinars
UPCOMING EVENTS
• DNUG – Domino Best Practices – September 7
• https://dnug.de/event/dnug-online-domino-best-
practices-domino-notes-v12/
• Collabsphere Online – October 19-21
• https://collabsphere.org/ug/cs2021.nsf/register.html
• Engage 2022 – Bruges, Belgium – March 22-23, 2022
• https://engage.ug/
GIT MECHANICS FOR
DOMINO DEVS
Source-control system, similar to SVN, Subversion, et al
It was created for the Linux kernel, and is now the dominant source-control system
"Git" itself is the open-source project and tool, while there are many different servers and hosting
services, such as GitHub and Bitbucket
WHAT IS GIT?
GIT CONCEPTUAL LAYOUT
A
A + B
A + B + C
A + B + C + D
A + B + C + D + E + F
A + E
A + E + F
A series of "commits": one or more file changes relative to the
previous state
A "branch" is a named sequence of commits
Creating a new branch ("branching") allows you to make
changes based on a given starting point
Merging allows (and forces) you to combine the changes from
your branch back
"main" and "master" are conventional names for the primary
branch, but technically all commits are equal
A commit is an individual unit of changes in a repository
Select changed files to add to a commit (or portions thereof)
Provide a message
Styles vary - some use "does X", some use "did X"
Don't use "changes since last time", etc.
Do include an issue number if that's part of your flow
COMMITS
Remotes
Think "replicas", with options for partial replication by branch
A local repo can have any number of remotes, but usually there's one and it's "origin"
Tags
Bookmarks for a specific commit, very often corresponding to releases
Submodules
Related additional Git repos - handy in some cases, but be wary
GIT CONCEPTS
Gitflow (GitFlow? git-flow?)
A common idiom for handling branching and versioning projects
It also has built-in support in GUI apps and in the CLI
Git LFS
Allows better handling of binary files (images, archives, etc.)
Kind of like DAOS
Has to be initialized in your local repo for it to understand, though many GUIs can handle this for you
automatically
GIT EXTENSIONS
Main project page: https://git-scm.com
Git Project Tutorial: https://git-scm.com/docs/gittutorial
Atlassian Tutorials: https://www.atlassian.com/git/tutorials
Gitflow Tutorial: https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow
GIT RESOURCES
GIT TOOLS
Git is command-line-first, but this is very daunting in general, and particularly for someone new
These GUIs usually wrap the official CLI commands, but expose options in a more-intuitive way
They tend to make it much easier to visualize the history, get an overview of the repository, and
generally do work
Some support extended features, such as managing GitHub Pull Request inline
GUI APPLICATIONS
Many tools, free and non-free, exist:
SourceTree from Atlassian: https://www.sourcetreeapp.com/
NotesIn9: https://www.youtube.com/watch?v=TivgBeOHcEo
GitHub Desktop: https://desktop.github.com/
Tower (the one I use currently): https://www.git-tower.com/
Git project's list: https://git-scm.com/downloads/guis
GUI APPLICATIONS
GUI APPLICATIONS
Git can work over several protocols, with the two dominant ones being HTTPS and SSH
Many Git hosts allow or require SSH use to access, including GitHub
This is fiddly in all cases, but particularly so on Windows
Sorry ¯_(ツ)_/¯
Setup generally involves creating an SSH keypair locally and then pasting the public key into the web
GUI for your host
GitHub tutorial: https://docs.github.com/en/github/authenticating-to-github/connecting-to-github-
with-ssh
SSH
WORKING WITH AN NSF
Designer can sync an NSF with an On-Disk Project (ODP)
This project contains all design elements exported as DXL
Some elements, like image resources and XPages, are split
in a useful way
Designer uses the term "Team Development" to refer to its
NSF<->ODP sync
Use "Build Automatically" or explicitly build apps
DESIGNER
"Binary DXL"
An option in Designer prefs, applying to all databases
This DXL format is less friendly (no HTML-like form bodies,
etc.) but is safer for true round-trip use
Though it makes collaboration more difficult, the safety is
worth it
Put the ODP in a sub-folder of the repo
...and maybe in an "odp" sub-folder of that
This avoids importing Git metadata into the NSF and will help
when the project grows
DESIGNER TIPS
Swiper removes unnecessary and frequently-changing data
from exported design elements
Time last signed, etc.
While not explicitly mandatory, it may as well be
This is installed in Designer and can be configured to apply
automatically to all source-control operations
...which it should be
SWIPER
A project of mine used to integrate ODPs with automated builds
Not required for source control, but can be useful particularly when working with OSGi plugins or
multiple ODPs in one repo
CollabSphere presentation: https://www.youtube.com/watch?v=7MeCMz0F-vM
NSF ODP TOOLING (OPTIONAL)
Official documentation:
https://help.hcltechsw.com/dom_designer/9.0.1/user/wpd_srcecontrol_feature_setup.html
NotesIn9:
https://www.youtube.com/watch?v=wl_6LCkopMI
https://www.youtube.com/watch?v=I4nA0aksMJA
https://www.youtube.com/watch?v=kjpM3NolEiA
DESIGNER TUTORIALS
GITHUB-ISMS
Forking allows you to create a full copy - code, commit history,
etc. - of a repository in your profile or organization
Forks maintain a loose relationship with the original repository,
with options to bring in changes from the original
GitHub recently added "Fetch Upstream" to make this easier
This can be used to either create a wholly-new entity or to work
on changes that you then send back "upstream"
Technically, they're two distinct Git repositories protocol-wise
FORKED REPOSITORIES
"Pull Request" means that you want to make a request to a
repository owner/manager to merge in changes you've made
These changes can either be in a branch in the same repository or
in a forked repository
This allows for multiple types of collaborative workflows:
many authors in distinct branches in one repo, or each author
with a forked repo
The request includes all commits in your branch that are not
present in the destination branch
This pairs well with Gitflow, where you request a merge of a
feature branch
PULL REQUESTS
IP MANAGEMENT
LICENSE file
License compatibility
NOTICE file
List all third-party code, even if it's just from a blog post
Optionally, license headers
BASICS
Choose your license (safest bet is Apache) and copy the license into your repo
GitHub can add a license file for you when creating a new repository
Make sure to set the copyright year and owner in the file if applicable!
Make sure all your included dependencies are compatible
In general, there are "permissive" and "copyleft" open-source licenses
"Permissive" is more "business-friendly" in many cases
You can mix GPL code in with others (often), but then your code must be GPL
LICENSE FILE
Enumerate all included code, both code copied into the source repository and code included in any
final distribution package
If third-party code contains its own NOTICE file, copy that into your repo, e.g. "NOTICE-apache.txt"
Mention in your notice if you don't use all of those dependencies, but keep their file intact
Check many projects under the OpenNTF GitHub org for examples
Guide for Apache-foundation projects: https://infra.apache.org/licensing-howto.html
NOTICE FILE
GPL/LGPL Code
Stack Overflow code
Be very careful! Snippets are okay, but larger blocks must be specially licensed from the author for
proprietary works
Blog Posts
Unless the page has an explicit code license, it must be considered proprietary until you get
permission from the author
As a general rule, author permission is your escape hatch, as it's effectively re-licensing it
COMMON TRAPS
GitHub Explained
Paul Withers
Repository
Files
README.md – your “landing page”
LICENSE – text will be standard for the license type
NOTICE – lists license and copyright info for third party code used
CONTRIBUTING.md – do you accept contributions? What do people need
to know, to make your life easier?
CODE_OF_CONDUCT – makes explicit expectation for all involved
AUTHORS – optional, some projects use this to track who has contributed
.github/ISSUE_TEMPLATE – issue template templates, to ensure people
give you the information you need to solve their issues?
.github/pull_request_template.md – pull request template, to ensure all
involved do what you need
README
Some Things
to Think
About
• Badges?
• What is the purpose of the project?
• What requirements or pre-requisites are there for
using it?
• Software versions?
• How to get it working
• How to build a development environment
• Link to documentation – suggestion: GitHub Pages
• Contributing
• Acknowledgements
• License statement
• Disclaimer
License
• Preferred license is Apache 2.0
• Greatest flexibility, MIT is very similar
• License will depend on third-party resources
included
• Licensing can affect images as well as code
• If in doubt, ask
• Copyleft (GPL variants) can require same
license
• Copyleft require circulation of source code
• Not a problem for the open source project
• But can limit how others use the project
• https://choosealicense.com/licenses/ has
details of what licenses allow
• NOTE: Remember to update copyright date
and name
Copyright
Headers
Short boilerplate of license, author and
copyright
Added to code files, where appropriate
Some files won’t work if front-matter is
added
Avoids confusion if code is used out-of-
context
NOTICE
• Start with this project name and
copyright
• For each third-party code, include
• Name of the project
• Link to the source
• Copyright details
Contributing
If you’re not accepting contributions, it’s helpful to say so
Can be a way to build a community around the project
Do you want an issue before a PR?
Do you want PR process for very small changes?
Development environment setup
Are there style guidelines to ensure
consistent formatting?
Include settings files and preferences
Expectations for testing locally
All contributors will have to sign CLA (Contributor License Agreement)
Other Files
• Provides a single point-of-
reference for everyone involved
• CONTRIBUTING / PR template
can tell contributors to add
their name
AUTHORS
• List of changes for each release
CHANGELOG
Issue
Templates /
Pull Request
Templates
• Prompt for information you need (version, OS, browser etc)
• Steps to reproduce
• Logs
• Prevent misuse
• Exclude feature requests for features that will remain out of
scope
• Can be autoclosed by GitHub functionality
Issue Template
• Prompt for link to a GitHub issue
• Prompt for actions to be performed (e.g. updating AUTHORS)
• Remind committers of actions
Pull Request Template
Additional Info
Ensure a LICENSE file is
included
Click ”cog” next to
About on repo
Add a
description
Add one or
more topics
GitHub automatically
determines primary language
Other GitHub
Functionality
Discussions
allows more flexible communication
with community
Projects
allows management of work on
issues
GitHub Pages
more extensive online
documentation
Actions can provide automation
GitHub Pages
• Can be run locally – Ruby, Jekyll, Bundler
• Can be previewed on HCL-internal repo
• Uses (GitHub-flavoured) markdown
• https://guides.github.com/features/mastering-
markdown/
• Use relative links
• Don’t map to the .md file
• Liquid filters
(https://jekyllrb.com/docs/liquid/filters/)
• Jekyll-relative-links plugin? https://nicolas-
van.github.io/easy-markdown-to-github-pages/
• In-built themes are available
• Just the Docs is another theme that can be used
https://pmarsceill.github.io/just-the-docs/
Dependabot
and Security
Settings > Security and analysis
Can enable alerts for vulnerabilities
from Dependabot
Enabling “Dependabot security
updates” automatically generates
PRs (if possible) to fix security
issues
GPG Signature
Adding a GPG signature to GitHub verifies your commits
Gives an extra mark of quality
GPG Suite for Mac or Gpg4win for Windows from GnuPG
Create a signing key
Tell Git about your key
Add public key to GitHub
Passphrase can be stored in Mac OS Keychain but expires
after an hour on Windows
Questions
QUESTIONS?
Use the GoToWebinar Questions Pane
Please keep all questions related to the
topics that our speakers are discussing!!!
Unrelated Question => post at:
http://openntf.slack.com/

More Related Content

What's hot

April, 2021 OpenNTF Webinar - Domino Administration Best Practices
April, 2021 OpenNTF Webinar - Domino Administration Best PracticesApril, 2021 OpenNTF Webinar - Domino Administration Best Practices
April, 2021 OpenNTF Webinar - Domino Administration Best PracticesHoward Greenberg
 
OpenNTF Webinar, March, 2021
OpenNTF Webinar, March, 2021OpenNTF Webinar, March, 2021
OpenNTF Webinar, March, 2021Howard Greenberg
 
Hnd201 Building Ibm Lotus Domino Applications With Ajax Plugins
Hnd201 Building Ibm Lotus Domino Applications With Ajax PluginsHnd201 Building Ibm Lotus Domino Applications With Ajax Plugins
Hnd201 Building Ibm Lotus Domino Applications With Ajax Pluginsdominion
 
OpNovember Water Cooler Talk: The Mystery of Domino on Docker - Part 1
OpNovember Water Cooler Talk: The Mystery of Domino on Docker - Part 1OpNovember Water Cooler Talk: The Mystery of Domino on Docker - Part 1
OpNovember Water Cooler Talk: The Mystery of Domino on Docker - Part 1Howard Greenberg
 
October OpenNTF Webinar - What we like about Domino/Notes 12, recommended new...
October OpenNTF Webinar - What we like about Domino/Notes 12, recommended new...October OpenNTF Webinar - What we like about Domino/Notes 12, recommended new...
October OpenNTF Webinar - What we like about Domino/Notes 12, recommended new...Howard Greenberg
 
OpenNTF Webinar, May 19, 2020
OpenNTF Webinar, May 19, 2020OpenNTF Webinar, May 19, 2020
OpenNTF Webinar, May 19, 2020Howard Greenberg
 
July 2020 OpenNTF Webinar - Hear the Latest from the User Groups!
July 2020 OpenNTF Webinar - Hear the Latest from the User Groups!July 2020 OpenNTF Webinar - Hear the Latest from the User Groups!
July 2020 OpenNTF Webinar - Hear the Latest from the User Groups!Howard Greenberg
 
The XPages Mobile Controls: What's New in Notes 9.0.1
The XPages Mobile Controls: What's New in Notes 9.0.1The XPages Mobile Controls: What's New in Notes 9.0.1
The XPages Mobile Controls: What's New in Notes 9.0.1Teamstudio
 
Implementing Certificate Based Authentication for HCL Traveler Access - Enga...
 Implementing Certificate Based Authentication for HCL Traveler Access - Enga... Implementing Certificate Based Authentication for HCL Traveler Access - Enga...
Implementing Certificate Based Authentication for HCL Traveler Access - Enga...Milan Matejic
 
Enterprise Docker Requires a Private Registry
Enterprise Docker Requires a Private RegistryEnterprise Docker Requires a Private Registry
Enterprise Docker Requires a Private RegistryChris Riley ☁
 
Dev112 let's calendar that
Dev112   let's calendar thatDev112   let's calendar that
Dev112 let's calendar thatHoward Greenberg
 
Engage 2019: Your Data in the Major Leagues: A Practical and Updated Guide to...
Engage 2019: Your Data in the Major Leagues: A Practical and Updated Guide to...Engage 2019: Your Data in the Major Leagues: A Practical and Updated Guide to...
Engage 2019: Your Data in the Major Leagues: A Practical and Updated Guide to...Serdar Basegmez
 
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...Heiko Voigt
 
Get the best out of Bootstrap with Bootstrap4XPages - Engage 2014
Get the best out of Bootstrap with Bootstrap4XPages - Engage 2014Get the best out of Bootstrap with Bootstrap4XPages - Engage 2014
Get the best out of Bootstrap with Bootstrap4XPages - Engage 2014Mark Leusink
 
Dart Past Your Competition by Getting Your Digital Experience into Market Fas...
Dart Past Your Competition by Getting Your Digital Experience into Market Fas...Dart Past Your Competition by Getting Your Digital Experience into Market Fas...
Dart Past Your Competition by Getting Your Digital Experience into Market Fas...Perficient, Inc.
 
Engage 2019: Modernising Your Domino and XPages Applications
Engage 2019: Modernising Your Domino and XPages Applications Engage 2019: Modernising Your Domino and XPages Applications
Engage 2019: Modernising Your Domino and XPages Applications Paul Withers
 
How adding a further tool can be a good thing
How adding a further tool can be a good thingHow adding a further tool can be a good thing
How adding a further tool can be a good thingBelsoft
 
DEV117 - Unleash the Power of the AppDev Pack and Node.js in Domino
DEV117 - Unleash the Power of the AppDev Pack and Node.js in DominoDEV117 - Unleash the Power of the AppDev Pack and Node.js in Domino
DEV117 - Unleash the Power of the AppDev Pack and Node.js in DominoHeiko Voigt
 
DockerCon SF 2015: A New Model for Image Distribution
DockerCon SF 2015: A New Model for Image DistributionDockerCon SF 2015: A New Model for Image Distribution
DockerCon SF 2015: A New Model for Image DistributionDocker, Inc.
 

What's hot (20)

April, 2021 OpenNTF Webinar - Domino Administration Best Practices
April, 2021 OpenNTF Webinar - Domino Administration Best PracticesApril, 2021 OpenNTF Webinar - Domino Administration Best Practices
April, 2021 OpenNTF Webinar - Domino Administration Best Practices
 
OpenNTF Webinar, March, 2021
OpenNTF Webinar, March, 2021OpenNTF Webinar, March, 2021
OpenNTF Webinar, March, 2021
 
Hnd201 Building Ibm Lotus Domino Applications With Ajax Plugins
Hnd201 Building Ibm Lotus Domino Applications With Ajax PluginsHnd201 Building Ibm Lotus Domino Applications With Ajax Plugins
Hnd201 Building Ibm Lotus Domino Applications With Ajax Plugins
 
OpNovember Water Cooler Talk: The Mystery of Domino on Docker - Part 1
OpNovember Water Cooler Talk: The Mystery of Domino on Docker - Part 1OpNovember Water Cooler Talk: The Mystery of Domino on Docker - Part 1
OpNovember Water Cooler Talk: The Mystery of Domino on Docker - Part 1
 
October OpenNTF Webinar - What we like about Domino/Notes 12, recommended new...
October OpenNTF Webinar - What we like about Domino/Notes 12, recommended new...October OpenNTF Webinar - What we like about Domino/Notes 12, recommended new...
October OpenNTF Webinar - What we like about Domino/Notes 12, recommended new...
 
OpenNTF Webinar, May 19, 2020
OpenNTF Webinar, May 19, 2020OpenNTF Webinar, May 19, 2020
OpenNTF Webinar, May 19, 2020
 
July 2020 OpenNTF Webinar - Hear the Latest from the User Groups!
July 2020 OpenNTF Webinar - Hear the Latest from the User Groups!July 2020 OpenNTF Webinar - Hear the Latest from the User Groups!
July 2020 OpenNTF Webinar - Hear the Latest from the User Groups!
 
The XPages Mobile Controls: What's New in Notes 9.0.1
The XPages Mobile Controls: What's New in Notes 9.0.1The XPages Mobile Controls: What's New in Notes 9.0.1
The XPages Mobile Controls: What's New in Notes 9.0.1
 
Implementing Certificate Based Authentication for HCL Traveler Access - Enga...
 Implementing Certificate Based Authentication for HCL Traveler Access - Enga... Implementing Certificate Based Authentication for HCL Traveler Access - Enga...
Implementing Certificate Based Authentication for HCL Traveler Access - Enga...
 
Enterprise Docker Requires a Private Registry
Enterprise Docker Requires a Private RegistryEnterprise Docker Requires a Private Registry
Enterprise Docker Requires a Private Registry
 
Dev112 let's calendar that
Dev112   let's calendar thatDev112   let's calendar that
Dev112 let's calendar that
 
Engage 2019: Your Data in the Major Leagues: A Practical and Updated Guide to...
Engage 2019: Your Data in the Major Leagues: A Practical and Updated Guide to...Engage 2019: Your Data in the Major Leagues: A Practical and Updated Guide to...
Engage 2019: Your Data in the Major Leagues: A Practical and Updated Guide to...
 
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
 
Get the best out of Bootstrap with Bootstrap4XPages - Engage 2014
Get the best out of Bootstrap with Bootstrap4XPages - Engage 2014Get the best out of Bootstrap with Bootstrap4XPages - Engage 2014
Get the best out of Bootstrap with Bootstrap4XPages - Engage 2014
 
Dart Past Your Competition by Getting Your Digital Experience into Market Fas...
Dart Past Your Competition by Getting Your Digital Experience into Market Fas...Dart Past Your Competition by Getting Your Digital Experience into Market Fas...
Dart Past Your Competition by Getting Your Digital Experience into Market Fas...
 
Mini-training: Let’s Git It!
Mini-training: Let’s Git It!Mini-training: Let’s Git It!
Mini-training: Let’s Git It!
 
Engage 2019: Modernising Your Domino and XPages Applications
Engage 2019: Modernising Your Domino and XPages Applications Engage 2019: Modernising Your Domino and XPages Applications
Engage 2019: Modernising Your Domino and XPages Applications
 
How adding a further tool can be a good thing
How adding a further tool can be a good thingHow adding a further tool can be a good thing
How adding a further tool can be a good thing
 
DEV117 - Unleash the Power of the AppDev Pack and Node.js in Domino
DEV117 - Unleash the Power of the AppDev Pack and Node.js in DominoDEV117 - Unleash the Power of the AppDev Pack and Node.js in Domino
DEV117 - Unleash the Power of the AppDev Pack and Node.js in Domino
 
DockerCon SF 2015: A New Model for Image Distribution
DockerCon SF 2015: A New Model for Image DistributionDockerCon SF 2015: A New Model for Image Distribution
DockerCon SF 2015: A New Model for Image Distribution
 

Similar to August OpenNTF Webinar - Git and GitHub Explained

Open up your platform with Open Source and GitHub
Open up your platform with Open Source and GitHubOpen up your platform with Open Source and GitHub
Open up your platform with Open Source and GitHubScott Graham
 
Intro to Git for Drupal 7
Intro to Git for Drupal 7Intro to Git for Drupal 7
Intro to Git for Drupal 7Chris Caple
 
Using Git to Organize Your Project
Using Git to Organize Your ProjectUsing Git to Organize Your Project
Using Git to Organize Your ProjectManish Suwal 'Enwil'
 
Introduction to git hub
Introduction to git hubIntroduction to git hub
Introduction to git hubNaveen Pandey
 
Git for developers
Git for developersGit for developers
Git for developersHacen Dadda
 
Introduction to GitHub, Open Source and Tech Article
Introduction to GitHub, Open Source and Tech ArticleIntroduction to GitHub, Open Source and Tech Article
Introduction to GitHub, Open Source and Tech ArticlePRIYATHAMDARISI
 
Introduction to Git for Network Engineers
Introduction to Git for Network EngineersIntroduction to Git for Network Engineers
Introduction to Git for Network EngineersJoel W. King
 
Git, github and the hacktober fest
Git, github and the hacktober festGit, github and the hacktober fest
Git, github and the hacktober festUtkarshRaj83
 
Introduction to git and Github
Introduction to git and GithubIntroduction to git and Github
Introduction to git and GithubWycliff1
 
Untangling fall2017 week2_try2
Untangling fall2017 week2_try2Untangling fall2017 week2_try2
Untangling fall2017 week2_try2Derek Jacoby
 
Untangling fall2017 week2
Untangling fall2017 week2Untangling fall2017 week2
Untangling fall2017 week2Derek Jacoby
 
Hacktoberfest 2020 - Open source for beginners
Hacktoberfest 2020 - Open source for beginnersHacktoberfest 2020 - Open source for beginners
Hacktoberfest 2020 - Open source for beginnersDeepikaRana30
 

Similar to August OpenNTF Webinar - Git and GitHub Explained (20)

Migrating To GitHub
Migrating To GitHub  Migrating To GitHub
Migrating To GitHub
 
database.pptx
database.pptxdatabase.pptx
database.pptx
 
Open up your platform with Open Source and GitHub
Open up your platform with Open Source and GitHubOpen up your platform with Open Source and GitHub
Open up your platform with Open Source and GitHub
 
Intro to Git for Drupal 7
Intro to Git for Drupal 7Intro to Git for Drupal 7
Intro to Git for Drupal 7
 
Github
GithubGithub
Github
 
Using Git to Organize Your Project
Using Git to Organize Your ProjectUsing Git to Organize Your Project
Using Git to Organize Your Project
 
Git hub visualstudiocode
Git hub visualstudiocodeGit hub visualstudiocode
Git hub visualstudiocode
 
Introduction to git hub
Introduction to git hubIntroduction to git hub
Introduction to git hub
 
Git for developers
Git for developersGit for developers
Git for developers
 
Introduction to GitHub, Open Source and Tech Article
Introduction to GitHub, Open Source and Tech ArticleIntroduction to GitHub, Open Source and Tech Article
Introduction to GitHub, Open Source and Tech Article
 
GIT By Sivakrishna
GIT By SivakrishnaGIT By Sivakrishna
GIT By Sivakrishna
 
Introduction to Git for Network Engineers
Introduction to Git for Network EngineersIntroduction to Git for Network Engineers
Introduction to Git for Network Engineers
 
Git, github and the hacktober fest
Git, github and the hacktober festGit, github and the hacktober fest
Git, github and the hacktober fest
 
Introduction to git and Github
Introduction to git and GithubIntroduction to git and Github
Introduction to git and Github
 
Untangling fall2017 week2_try2
Untangling fall2017 week2_try2Untangling fall2017 week2_try2
Untangling fall2017 week2_try2
 
Untangling fall2017 week2
Untangling fall2017 week2Untangling fall2017 week2
Untangling fall2017 week2
 
Contributing to the AtoM documentation
Contributing to the AtoM documentationContributing to the AtoM documentation
Contributing to the AtoM documentation
 
Get Git with It! A Developer's Workshop.pptx
Get Git with It! A Developer's Workshop.pptxGet Git with It! A Developer's Workshop.pptx
Get Git with It! A Developer's Workshop.pptx
 
Webinar : SVN to GIT Migration
Webinar : SVN to GIT Migration Webinar : SVN to GIT Migration
Webinar : SVN to GIT Migration
 
Hacktoberfest 2020 - Open source for beginners
Hacktoberfest 2020 - Open source for beginnersHacktoberfest 2020 - Open source for beginners
Hacktoberfest 2020 - Open source for beginners
 

More from Howard Greenberg

January OpenNTF Webinar - Backup your Domino Server - New Options in V12
January OpenNTF Webinar - Backup your Domino Server - New Options in V12January OpenNTF Webinar - Backup your Domino Server - New Options in V12
January OpenNTF Webinar - Backup your Domino Server - New Options in V12Howard Greenberg
 
June OpenNTF Webinar - Domino V12 Certification Manager
June OpenNTF Webinar - Domino V12 Certification ManagerJune OpenNTF Webinar - Domino V12 Certification Manager
June OpenNTF Webinar - Domino V12 Certification ManagerHoward Greenberg
 
Bp101-Can Domino Be Hacked
Bp101-Can Domino Be HackedBp101-Can Domino Be Hacked
Bp101-Can Domino Be HackedHoward Greenberg
 
MWLUG Session- AD112 - Take a Trip Into the Forest - A Java Primer on Maps, ...
MWLUG Session-  AD112 - Take a Trip Into the Forest - A Java Primer on Maps, ...MWLUG Session-  AD112 - Take a Trip Into the Forest - A Java Primer on Maps, ...
MWLUG Session- AD112 - Take a Trip Into the Forest - A Java Primer on Maps, ...Howard Greenberg
 
Connect 2016-Move Your XPages Applications to the Fast Lane
Connect 2016-Move Your XPages Applications to the Fast LaneConnect 2016-Move Your XPages Applications to the Fast Lane
Connect 2016-Move Your XPages Applications to the Fast LaneHoward Greenberg
 
Webinar: From Frustration to Fascination: Dissecting Replication
Webinar: From Frustration to Fascination: Dissecting ReplicationWebinar: From Frustration to Fascination: Dissecting Replication
Webinar: From Frustration to Fascination: Dissecting ReplicationHoward Greenberg
 
XPages Application Layout Control - TLCC March, 2014 Webinar
XPages Application Layout Control - TLCC March, 2014 WebinarXPages Application Layout Control - TLCC March, 2014 Webinar
XPages Application Layout Control - TLCC March, 2014 WebinarHoward Greenberg
 
Creating a Great XPages User Interface, TLCC Teamstudio Webinar - Feb, 2014
Creating a Great XPages User Interface, TLCC Teamstudio Webinar - Feb, 2014Creating a Great XPages User Interface, TLCC Teamstudio Webinar - Feb, 2014
Creating a Great XPages User Interface, TLCC Teamstudio Webinar - Feb, 2014Howard Greenberg
 
Connect 2014 - JMP102: Creating a Great XPages User Interface
Connect 2014 - JMP102: Creating a Great XPages User InterfaceConnect 2014 - JMP102: Creating a Great XPages User Interface
Connect 2014 - JMP102: Creating a Great XPages User InterfaceHoward Greenberg
 
Connect 2014 - BP202: Rapid XPages Development Using the Application Layout C...
Connect 2014 - BP202: Rapid XPages Development Using the Application Layout C...Connect 2014 - BP202: Rapid XPages Development Using the Application Layout C...
Connect 2014 - BP202: Rapid XPages Development Using the Application Layout C...Howard Greenberg
 
Jmp103-Get the Jump on Mobilizing Your Notes and Domino Applications Today!
Jmp103-Get the Jump on Mobilizing Your Notes and Domino Applications Today!Jmp103-Get the Jump on Mobilizing Your Notes and Domino Applications Today!
Jmp103-Get the Jump on Mobilizing Your Notes and Domino Applications Today!Howard Greenberg
 

More from Howard Greenberg (14)

January OpenNTF Webinar - Backup your Domino Server - New Options in V12
January OpenNTF Webinar - Backup your Domino Server - New Options in V12January OpenNTF Webinar - Backup your Domino Server - New Options in V12
January OpenNTF Webinar - Backup your Domino Server - New Options in V12
 
BRPA November Meeting
BRPA November MeetingBRPA November Meeting
BRPA November Meeting
 
June OpenNTF Webinar - Domino V12 Certification Manager
June OpenNTF Webinar - Domino V12 Certification ManagerJune OpenNTF Webinar - Domino V12 Certification Manager
June OpenNTF Webinar - Domino V12 Certification Manager
 
Open ntf 2020-jun
Open ntf 2020-junOpen ntf 2020-jun
Open ntf 2020-jun
 
Bp101-Can Domino Be Hacked
Bp101-Can Domino Be HackedBp101-Can Domino Be Hacked
Bp101-Can Domino Be Hacked
 
MWLUG Session- AD112 - Take a Trip Into the Forest - A Java Primer on Maps, ...
MWLUG Session-  AD112 - Take a Trip Into the Forest - A Java Primer on Maps, ...MWLUG Session-  AD112 - Take a Trip Into the Forest - A Java Primer on Maps, ...
MWLUG Session- AD112 - Take a Trip Into the Forest - A Java Primer on Maps, ...
 
Connect 2016-Move Your XPages Applications to the Fast Lane
Connect 2016-Move Your XPages Applications to the Fast LaneConnect 2016-Move Your XPages Applications to the Fast Lane
Connect 2016-Move Your XPages Applications to the Fast Lane
 
May 2014-webinar
May 2014-webinarMay 2014-webinar
May 2014-webinar
 
Webinar: From Frustration to Fascination: Dissecting Replication
Webinar: From Frustration to Fascination: Dissecting ReplicationWebinar: From Frustration to Fascination: Dissecting Replication
Webinar: From Frustration to Fascination: Dissecting Replication
 
XPages Application Layout Control - TLCC March, 2014 Webinar
XPages Application Layout Control - TLCC March, 2014 WebinarXPages Application Layout Control - TLCC March, 2014 Webinar
XPages Application Layout Control - TLCC March, 2014 Webinar
 
Creating a Great XPages User Interface, TLCC Teamstudio Webinar - Feb, 2014
Creating a Great XPages User Interface, TLCC Teamstudio Webinar - Feb, 2014Creating a Great XPages User Interface, TLCC Teamstudio Webinar - Feb, 2014
Creating a Great XPages User Interface, TLCC Teamstudio Webinar - Feb, 2014
 
Connect 2014 - JMP102: Creating a Great XPages User Interface
Connect 2014 - JMP102: Creating a Great XPages User InterfaceConnect 2014 - JMP102: Creating a Great XPages User Interface
Connect 2014 - JMP102: Creating a Great XPages User Interface
 
Connect 2014 - BP202: Rapid XPages Development Using the Application Layout C...
Connect 2014 - BP202: Rapid XPages Development Using the Application Layout C...Connect 2014 - BP202: Rapid XPages Development Using the Application Layout C...
Connect 2014 - BP202: Rapid XPages Development Using the Application Layout C...
 
Jmp103-Get the Jump on Mobilizing Your Notes and Domino Applications Today!
Jmp103-Get the Jump on Mobilizing Your Notes and Domino Applications Today!Jmp103-Get the Jump on Mobilizing Your Notes and Domino Applications Today!
Jmp103-Get the Jump on Mobilizing Your Notes and Domino Applications Today!
 

Recently uploaded

WSO2CON 2024 - Architecting AI in the Enterprise: APIs and Applications
WSO2CON 2024 - Architecting AI in the Enterprise: APIs and ApplicationsWSO2CON 2024 - Architecting AI in the Enterprise: APIs and Applications
WSO2CON 2024 - Architecting AI in the Enterprise: APIs and ApplicationsWSO2
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2
 
WSO2CON2024 - Why Should You Consider Ballerina for Your Next Integration
WSO2CON2024 - Why Should You Consider Ballerina for Your Next IntegrationWSO2CON2024 - Why Should You Consider Ballerina for Your Next Integration
WSO2CON2024 - Why Should You Consider Ballerina for Your Next IntegrationWSO2
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationJuha-Pekka Tolvanen
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxAnnaArtyushina1
 
AzureNativeQumulo_HPC_Cloud_Native_Benchmarks.pdf
AzureNativeQumulo_HPC_Cloud_Native_Benchmarks.pdfAzureNativeQumulo_HPC_Cloud_Native_Benchmarks.pdf
AzureNativeQumulo_HPC_Cloud_Native_Benchmarks.pdfryanfarris8
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2
 
WSO2Con2024 - Organization Management: The Revolution in B2B CIAM
WSO2Con2024 - Organization Management: The Revolution in B2B CIAMWSO2Con2024 - Organization Management: The Revolution in B2B CIAM
WSO2Con2024 - Organization Management: The Revolution in B2B CIAMWSO2
 
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!WSO2
 
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public AdministrationWSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public AdministrationWSO2
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
WSO2Con2024 - Low-Code Integration Tooling
WSO2Con2024 - Low-Code Integration ToolingWSO2Con2024 - Low-Code Integration Tooling
WSO2Con2024 - Low-Code Integration ToolingWSO2
 
WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...
WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...
WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...WSO2
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Bert Jan Schrijver
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...WSO2
 
WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...
WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...
WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...WSO2
 

Recently uploaded (20)

WSO2CON 2024 - Architecting AI in the Enterprise: APIs and Applications
WSO2CON 2024 - Architecting AI in the Enterprise: APIs and ApplicationsWSO2CON 2024 - Architecting AI in the Enterprise: APIs and Applications
WSO2CON 2024 - Architecting AI in the Enterprise: APIs and Applications
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
WSO2CON2024 - Why Should You Consider Ballerina for Your Next Integration
WSO2CON2024 - Why Should You Consider Ballerina for Your Next IntegrationWSO2CON2024 - Why Should You Consider Ballerina for Your Next Integration
WSO2CON2024 - Why Should You Consider Ballerina for Your Next Integration
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 
AzureNativeQumulo_HPC_Cloud_Native_Benchmarks.pdf
AzureNativeQumulo_HPC_Cloud_Native_Benchmarks.pdfAzureNativeQumulo_HPC_Cloud_Native_Benchmarks.pdf
AzureNativeQumulo_HPC_Cloud_Native_Benchmarks.pdf
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
WSO2Con2024 - Organization Management: The Revolution in B2B CIAM
WSO2Con2024 - Organization Management: The Revolution in B2B CIAMWSO2Con2024 - Organization Management: The Revolution in B2B CIAM
WSO2Con2024 - Organization Management: The Revolution in B2B CIAM
 
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public AdministrationWSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
WSO2Con2024 - Low-Code Integration Tooling
WSO2Con2024 - Low-Code Integration ToolingWSO2Con2024 - Low-Code Integration Tooling
WSO2Con2024 - Low-Code Integration Tooling
 
WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...
WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...
WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...
 
WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...
WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...
WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...
 

August OpenNTF Webinar - Git and GitHub Explained

  • 1. OPENNTF WEBINARS August 2021 Webinar – Git and GitHub Explained With Paul Withers and Jesse Gallagher
  • 2. AGENDA • Welcome – Graham Acres • Paul Withers and Jesse Gallagher • Questions – Graham Acres
  • 3. ASKING QUESTIONS • First Question – Will this be recorded? • Yes, view on YouTube!!! • https://www.youtube.com/user/OpenNTF • Use the Questions Pane in GoToWebinar • We will get to your questions at the end of the webinar • The speakers will respond to your questions verbally • (not in the Questions pane) • Please keep all questions related to the topics that our speakers are discussing!!! • Unrelated Question => post at: • http://openntf.slack.com/
  • 4. THANKS TO THE OPENNTF SPONSORS • HCL made a contribution to help our organization • Funds these webinars! • Contests like Hackathons • Running the organization • Prominic donates all IT related services • Cloud Hosting for OpenNTF • Infrastructure management for HCL Domino and Atlassian Servers • System Administration for day-to-day operation
  • 5. THIS IS OUR COMMUNITY • Join us and get involved! • We are all volunteers • No effort is too small • If your idea is bigger than you can do on your own, we can connect you to a team to work on it • Test or help or modify an existing project • Write guides or documentation • Add reviews on projects / stars on Snippets
  • 6. NEXT WEBINAR • September 23, 2021 • Domino Online Meeting Integration (DOMI) • Paul Withers, Devin Olson, Rocky Oliver • Signup at https://openntf.org/webinars
  • 7. UPCOMING EVENTS • DNUG – Domino Best Practices – September 7 • https://dnug.de/event/dnug-online-domino-best- practices-domino-notes-v12/ • Collabsphere Online – October 19-21 • https://collabsphere.org/ug/cs2021.nsf/register.html • Engage 2022 – Bruges, Belgium – March 22-23, 2022 • https://engage.ug/
  • 9. Source-control system, similar to SVN, Subversion, et al It was created for the Linux kernel, and is now the dominant source-control system "Git" itself is the open-source project and tool, while there are many different servers and hosting services, such as GitHub and Bitbucket WHAT IS GIT?
  • 10. GIT CONCEPTUAL LAYOUT A A + B A + B + C A + B + C + D A + B + C + D + E + F A + E A + E + F A series of "commits": one or more file changes relative to the previous state A "branch" is a named sequence of commits Creating a new branch ("branching") allows you to make changes based on a given starting point Merging allows (and forces) you to combine the changes from your branch back "main" and "master" are conventional names for the primary branch, but technically all commits are equal
  • 11. A commit is an individual unit of changes in a repository Select changed files to add to a commit (or portions thereof) Provide a message Styles vary - some use "does X", some use "did X" Don't use "changes since last time", etc. Do include an issue number if that's part of your flow COMMITS
  • 12. Remotes Think "replicas", with options for partial replication by branch A local repo can have any number of remotes, but usually there's one and it's "origin" Tags Bookmarks for a specific commit, very often corresponding to releases Submodules Related additional Git repos - handy in some cases, but be wary GIT CONCEPTS
  • 13. Gitflow (GitFlow? git-flow?) A common idiom for handling branching and versioning projects It also has built-in support in GUI apps and in the CLI Git LFS Allows better handling of binary files (images, archives, etc.) Kind of like DAOS Has to be initialized in your local repo for it to understand, though many GUIs can handle this for you automatically GIT EXTENSIONS
  • 14. Main project page: https://git-scm.com Git Project Tutorial: https://git-scm.com/docs/gittutorial Atlassian Tutorials: https://www.atlassian.com/git/tutorials Gitflow Tutorial: https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow GIT RESOURCES
  • 16. Git is command-line-first, but this is very daunting in general, and particularly for someone new These GUIs usually wrap the official CLI commands, but expose options in a more-intuitive way They tend to make it much easier to visualize the history, get an overview of the repository, and generally do work Some support extended features, such as managing GitHub Pull Request inline GUI APPLICATIONS
  • 17. Many tools, free and non-free, exist: SourceTree from Atlassian: https://www.sourcetreeapp.com/ NotesIn9: https://www.youtube.com/watch?v=TivgBeOHcEo GitHub Desktop: https://desktop.github.com/ Tower (the one I use currently): https://www.git-tower.com/ Git project's list: https://git-scm.com/downloads/guis GUI APPLICATIONS
  • 19. Git can work over several protocols, with the two dominant ones being HTTPS and SSH Many Git hosts allow or require SSH use to access, including GitHub This is fiddly in all cases, but particularly so on Windows Sorry ¯_(ツ)_/¯ Setup generally involves creating an SSH keypair locally and then pasting the public key into the web GUI for your host GitHub tutorial: https://docs.github.com/en/github/authenticating-to-github/connecting-to-github- with-ssh SSH
  • 21. Designer can sync an NSF with an On-Disk Project (ODP) This project contains all design elements exported as DXL Some elements, like image resources and XPages, are split in a useful way Designer uses the term "Team Development" to refer to its NSF<->ODP sync Use "Build Automatically" or explicitly build apps DESIGNER
  • 22. "Binary DXL" An option in Designer prefs, applying to all databases This DXL format is less friendly (no HTML-like form bodies, etc.) but is safer for true round-trip use Though it makes collaboration more difficult, the safety is worth it Put the ODP in a sub-folder of the repo ...and maybe in an "odp" sub-folder of that This avoids importing Git metadata into the NSF and will help when the project grows DESIGNER TIPS
  • 23. Swiper removes unnecessary and frequently-changing data from exported design elements Time last signed, etc. While not explicitly mandatory, it may as well be This is installed in Designer and can be configured to apply automatically to all source-control operations ...which it should be SWIPER
  • 24. A project of mine used to integrate ODPs with automated builds Not required for source control, but can be useful particularly when working with OSGi plugins or multiple ODPs in one repo CollabSphere presentation: https://www.youtube.com/watch?v=7MeCMz0F-vM NSF ODP TOOLING (OPTIONAL)
  • 27. Forking allows you to create a full copy - code, commit history, etc. - of a repository in your profile or organization Forks maintain a loose relationship with the original repository, with options to bring in changes from the original GitHub recently added "Fetch Upstream" to make this easier This can be used to either create a wholly-new entity or to work on changes that you then send back "upstream" Technically, they're two distinct Git repositories protocol-wise FORKED REPOSITORIES
  • 28. "Pull Request" means that you want to make a request to a repository owner/manager to merge in changes you've made These changes can either be in a branch in the same repository or in a forked repository This allows for multiple types of collaborative workflows: many authors in distinct branches in one repo, or each author with a forked repo The request includes all commits in your branch that are not present in the destination branch This pairs well with Gitflow, where you request a merge of a feature branch PULL REQUESTS
  • 30. LICENSE file License compatibility NOTICE file List all third-party code, even if it's just from a blog post Optionally, license headers BASICS
  • 31. Choose your license (safest bet is Apache) and copy the license into your repo GitHub can add a license file for you when creating a new repository Make sure to set the copyright year and owner in the file if applicable! Make sure all your included dependencies are compatible In general, there are "permissive" and "copyleft" open-source licenses "Permissive" is more "business-friendly" in many cases You can mix GPL code in with others (often), but then your code must be GPL LICENSE FILE
  • 32. Enumerate all included code, both code copied into the source repository and code included in any final distribution package If third-party code contains its own NOTICE file, copy that into your repo, e.g. "NOTICE-apache.txt" Mention in your notice if you don't use all of those dependencies, but keep their file intact Check many projects under the OpenNTF GitHub org for examples Guide for Apache-foundation projects: https://infra.apache.org/licensing-howto.html NOTICE FILE
  • 33. GPL/LGPL Code Stack Overflow code Be very careful! Snippets are okay, but larger blocks must be specially licensed from the author for proprietary works Blog Posts Unless the page has an explicit code license, it must be considered proprietary until you get permission from the author As a general rule, author permission is your escape hatch, as it's effectively re-licensing it COMMON TRAPS
  • 35. Repository Files README.md – your “landing page” LICENSE – text will be standard for the license type NOTICE – lists license and copyright info for third party code used CONTRIBUTING.md – do you accept contributions? What do people need to know, to make your life easier? CODE_OF_CONDUCT – makes explicit expectation for all involved AUTHORS – optional, some projects use this to track who has contributed .github/ISSUE_TEMPLATE – issue template templates, to ensure people give you the information you need to solve their issues? .github/pull_request_template.md – pull request template, to ensure all involved do what you need
  • 36. README Some Things to Think About • Badges? • What is the purpose of the project? • What requirements or pre-requisites are there for using it? • Software versions? • How to get it working • How to build a development environment • Link to documentation – suggestion: GitHub Pages • Contributing • Acknowledgements • License statement • Disclaimer
  • 37. License • Preferred license is Apache 2.0 • Greatest flexibility, MIT is very similar • License will depend on third-party resources included • Licensing can affect images as well as code • If in doubt, ask • Copyleft (GPL variants) can require same license • Copyleft require circulation of source code • Not a problem for the open source project • But can limit how others use the project • https://choosealicense.com/licenses/ has details of what licenses allow • NOTE: Remember to update copyright date and name
  • 38. Copyright Headers Short boilerplate of license, author and copyright Added to code files, where appropriate Some files won’t work if front-matter is added Avoids confusion if code is used out-of- context
  • 39. NOTICE • Start with this project name and copyright • For each third-party code, include • Name of the project • Link to the source • Copyright details
  • 40. Contributing If you’re not accepting contributions, it’s helpful to say so Can be a way to build a community around the project Do you want an issue before a PR? Do you want PR process for very small changes? Development environment setup Are there style guidelines to ensure consistent formatting? Include settings files and preferences Expectations for testing locally All contributors will have to sign CLA (Contributor License Agreement)
  • 41. Other Files • Provides a single point-of- reference for everyone involved • CONTRIBUTING / PR template can tell contributors to add their name AUTHORS • List of changes for each release CHANGELOG
  • 42. Issue Templates / Pull Request Templates • Prompt for information you need (version, OS, browser etc) • Steps to reproduce • Logs • Prevent misuse • Exclude feature requests for features that will remain out of scope • Can be autoclosed by GitHub functionality Issue Template • Prompt for link to a GitHub issue • Prompt for actions to be performed (e.g. updating AUTHORS) • Remind committers of actions Pull Request Template
  • 43. Additional Info Ensure a LICENSE file is included Click ”cog” next to About on repo Add a description Add one or more topics GitHub automatically determines primary language
  • 44. Other GitHub Functionality Discussions allows more flexible communication with community Projects allows management of work on issues GitHub Pages more extensive online documentation Actions can provide automation
  • 45. GitHub Pages • Can be run locally – Ruby, Jekyll, Bundler • Can be previewed on HCL-internal repo • Uses (GitHub-flavoured) markdown • https://guides.github.com/features/mastering- markdown/ • Use relative links • Don’t map to the .md file • Liquid filters (https://jekyllrb.com/docs/liquid/filters/) • Jekyll-relative-links plugin? https://nicolas- van.github.io/easy-markdown-to-github-pages/ • In-built themes are available • Just the Docs is another theme that can be used https://pmarsceill.github.io/just-the-docs/
  • 46. Dependabot and Security Settings > Security and analysis Can enable alerts for vulnerabilities from Dependabot Enabling “Dependabot security updates” automatically generates PRs (if possible) to fix security issues
  • 47. GPG Signature Adding a GPG signature to GitHub verifies your commits Gives an extra mark of quality GPG Suite for Mac or Gpg4win for Windows from GnuPG Create a signing key Tell Git about your key Add public key to GitHub Passphrase can be stored in Mac OS Keychain but expires after an hour on Windows
  • 49. QUESTIONS? Use the GoToWebinar Questions Pane Please keep all questions related to the topics that our speakers are discussing!!! Unrelated Question => post at: http://openntf.slack.com/