SlideShare a Scribd company logo
GIT & GITHUB BASICS
GameCraft Training 
Radoslav Georgiev (@Rado_G)
DISCLAIMER
I’m not a Git expert or pro 
Agenda
• Why use Source Control System ?
• How to setup Git and Github on Windows ?
• Terminology
• Repositories 1.0 – git {init, add, commit, push, remote}
• Repositories 2.0 – .gitignore, git {clone, pull, revert, mv,
  rm}
• Fork & Pull + Shared Repos
Why use Source Control Systems ?
          What is ?                     Why use ?



• SCS are a tool that helps   • Keeps the developing
  keeping versions of the       process simple
  code                        • All files are hosted
• SCS allow multiple            (Github)
  developers to work on the   • No nose bleed!
  same code with minimum      • Tons of благинки
  amount of collisions
No Source Control System =
Agenda
• Why use Source Control System ?
• How to setup Git and Github on Windows ?
• Terminology
• Repositories 1.0 – git {init, add, commit, push, remote}
• Repositories 2.0 – .gitignore, git {clone, pull, revert, mv,
  rm}
• Fork & Pull + Shared Repos
How to setup Git and Github on
Windows?
• First of all – create a Github Account
• And second :




• There’s a great guide @ the Github site -
 http://help.github.com/win-set-up-git/
How to setup Git and Github on
Windows? cont’d
• You’ll need msysgit (Linux shell)
• You’ll have to generate an SSH key-pair
   • And think of a passphrase ! <- Important
• You’ll have to add the SHH keys to your Github account
• Then test :   $ ssh –T git@github.com
                some output .. (yes/no)
                $ yes
                Hi username! You‟ve successfully authenticated, but Github
                does not provide shell access.



• gg, wp
And some configuration ^_^
• Name & Email – Github tracks them
$ git config –global user.name “Firstname Lastname”
$ git config –global user.email “email@email.com”



• Github API token
  • On the GitHub site Click “Account Settings” > Click “Account
    Admin.”
$ git config –global github.user username
$ git config –global github.token the_token
DEMO TIME
1) Create a Github account
2) Set up with Windows
Agenda
• Why use Source Control System ?
• How to setup Git and Github on Windows ?
• Terminology
• Repositories 1.0 – git {init, add, commit, push, remote}
• Repositories 2.0 – .gitignore, git {clone, pull, revert, mv,
  rm}
• Fork & Pull + Shared Repos
Some basic Terminology
• git = the shell command to work with Git
• repo = Repository, where the code for a given project is
    kept
•   commit = verb, means push the code to the server (in
    Git, commit = (commit + push)
•   diff = the difference between two versions of a file
•   SSH = Secure SHell – Network protocol for
    communication between machines
•   RSA = Rivest, Shamir, Adleman – public-key
    cryptography algorithm
    $ command
    Output of the command
Agenda
• Why use Source Control System ?
• How to setup Git and Github on Windows ?
• Terminology
• Repositories 1.0 – git {init, add, commit, push,
  remote}
• Repositories 2.0 – .gitignore, git {clone, pull, revert, mv,
  rm}
• Fork & Pull + Shared Repos
Lets create a repo !
• Click on the new repository button in Github
• Start the shell (Git Bash)
• Execute the super-complex command :
  $ git init
  Initialized empty Git repository in c:/code/TestingGithub/.git/


• Great, now we have repo. Lets create a file, shall we ?
  $ touch omgrofl.txt
  $ notepad omgrofl.txt (and add text) or $ echo “rofllol” > omgrofl.txt
  $ cat omgrofl.txt  cat prints to the output
  rofllol
Lets create a repo ! (cont’d)
• Okay, lets add it !

  $ git add omgrofl.txt


• And commit it 
  $ git commit –m „This is a commit message‟
  Some gitorish output

• And for the sake of learning, lets edit it again
  $ echo “roflcopter” >> omgrofl.txt
  $ cat omgrofl.txt
  rofllol
  roflcopter
Lets create a repo ! (cont’d)
• And now, lets see :

  $ git status


• Outputs :
  # On branch master
  # Changes not staged for commit:
  # (use "git add <file>..." to update what will be committed)
  # (use "git checkout -- <file>..." to discard changes in working directory)
  #
  #    modified: omgrofl.txt


• Almost there
  $ git add omgrofl.txt
  $ git status
How it works? Staging area.
What about Github ? Remotes ?
• Okay, you suck, there’s nothing @ Github
• Damn. Enter magic!
  $ git remote add origin git@github.com:UserName/ProjectName.git


• Git commits locally, pushes remotely !!!!!!!
• Add the remote when the repo is created (git init,
 remember ? )
  $ git remote add [name] [url]


• Want to see the remotes ?
  $ git remote -v
What about Github ? Push it up, baby!
• Okay, we have committed and added a remote to Github.
 It’s time to push 
  $ git push origin master
  Enter passphrase ! 

• Open up the repo in Github and enjoy ^_^
• The push command explained :
  $ git push [remote_name] [branch]


• Branches are black magic for later 
• There’s a big chance that the branch you are pushing to
 will be named “master”
Recap ! Creating a repo
• Create a repo
  $ git init



• Add an remote
  $ git remote add origin git@github.com:UserName/ProjectName.git



• Check if directory is a git repo
  $ ls –la
  Search for .git folder
Recap ! The workflow.
• Edit files and check the status
  $ git status

• Add them to the staging area
  $ git add file1.php file2.php file3.php
• Commit the changes
  $ git commit –m „Commit message that explains the changes‟
• Push them to Github
  $ git push origin master
  Enter passphrase!

• Celebrate ! 
DEMO
1) Create yourself a repo (from Github)
2) Add and Commit few files
3) Push them !
4) Repeat 2) and 3) few times
TAKE A BREAK.
We all deserve it 
Agenda
• Why use Source Control System ?
• How to setup Git and Github on Windows ?
• Terminology
• Repositories 1.0 – git {init, add, commit, push, remote}
• Repositories 2.0 – .gitignore, git {clone, pull, revert,
  mv, rm}
• Fork & Pull + Shared Repos
Don’t push your passwords
• Use .gitignore
  $ touch .gitignore
  $ echo “db_config.php” >> .gitignore
  $ git add .gitignore
  $ git push origin master
  Enter passphrase!



• Something missing ?
  $ git commit –m „You are not seeing my passwords!‟
Made a mistake ? No worries
• Unstage something – git reset

$ git add index.php
$ git status
Says it‟s staged. I don‟t want to ! I changed my mind.
$ git reset HEAD – index.php
$ git status
Now I‟m happy ^_^


• Revert a commit ? Reset hard!
 $ git reset –hard HEAD~1
 OR
 $ git reset –hard <commit_id>
Fork time.
• If you want to get a repo – fork is the way.
• Fork on github and then
 $ git clone git@github.com:UserName/ProjectName.git
• This inits a new Git repository!
• You can do everything with the code now – this is a
  separate repository.
• More @ http://help.github.com/fork-a-repo/
Shared repos
• If you are added as a collaborator @ some repo – you
  can do everything (clone, add, commit, push) without
  restrictions.
• Shared repos mean more developers. More Developers =
  more changes.

 $ git pull [remote_name]

• This will pull the latest changes 
Ad

More Related Content

What's hot (20)

Intro to git and git hub
Intro to git and git hubIntro to git and git hub
Intro to git and git hub
Venkat Malladi
 
Github - Git Training Slides: Foundations
Github - Git Training Slides: FoundationsGithub - Git Training Slides: Foundations
Github - Git Training Slides: Foundations
Lee Hanxue
 
GitHub Basics - Derek Bable
GitHub Basics - Derek BableGitHub Basics - Derek Bable
GitHub Basics - Derek Bable
"FENG "GEORGE"" YU
 
Git 101 for Beginners
Git 101 for Beginners Git 101 for Beginners
Git 101 for Beginners
Anurag Upadhaya
 
Git & GitHub WorkShop
Git & GitHub WorkShopGit & GitHub WorkShop
Git & GitHub WorkShop
SheilaJimenezMorejon
 
Git basics to advance with diagrams
Git basics to advance with diagramsGit basics to advance with diagrams
Git basics to advance with diagrams
Dilum Navanjana
 
Git and GitHub
Git and GitHubGit and GitHub
Git and GitHub
James Gray
 
Git - An Introduction
Git - An IntroductionGit - An Introduction
Git - An Introduction
Behzad Altaf
 
Git real slides
Git real slidesGit real slides
Git real slides
Lucas Couto
 
Git and github 101
Git and github 101Git and github 101
Git and github 101
Senthilkumar Gopal
 
Git and GitHub
Git and GitHubGit and GitHub
Git and GitHub
Md. Ahsan Habib Nayan
 
Git basics
Git basicsGit basics
Git basics
GHARSALLAH Mohamed
 
Grokking opensource with github
Grokking opensource with githubGrokking opensource with github
Grokking opensource with github
GoogleDeveloperStude4
 
Git One Day Training Notes
Git One Day Training NotesGit One Day Training Notes
Git One Day Training Notes
glen_a_smith
 
Git training v10
Git training v10Git training v10
Git training v10
Skander Hamza
 
Git and github
Git and githubGit and github
Git and github
Sayantika Banik
 
Introduction to Git
Introduction to GitIntroduction to Git
Introduction to Git
Lukas Fittl
 
Git - Basic Crash Course
Git - Basic Crash CourseGit - Basic Crash Course
Git - Basic Crash Course
Nilay Binjola
 
Git and Github Session
Git and Github SessionGit and Github Session
Git and Github Session
GoogleDevelopersStud1
 
Basic Git Intro
Basic Git IntroBasic Git Intro
Basic Git Intro
Yoad Snapir
 

Similar to Github basics (20)

Git installation and configuration
Git installation and configurationGit installation and configuration
Git installation and configuration
Kishor Kumar
 
Basic Git commands
Basic Git commandsBasic Git commands
Basic Git commands
Jitendra Zaa
 
Let's Git this Party Started: An Introduction to Git and GitHub
Let's Git this Party Started: An Introduction to Git and GitHubLet's Git this Party Started: An Introduction to Git and GitHub
Let's Git this Party Started: An Introduction to Git and GitHub
Kim Moir
 
Beginner's guide to git and github
Beginner's guide to git and github Beginner's guide to git and github
Beginner's guide to git and github
SahilSonar4
 
Git 101 - Crash Course in Version Control using Git
Git 101 - Crash Course in Version Control using GitGit 101 - Crash Course in Version Control using Git
Git 101 - Crash Course in Version Control using Git
Geoff Hoffman
 
Demo
DemoDemo
Demo
Miracle Anyanwu
 
Github By Nyros Developer
Github By Nyros DeveloperGithub By Nyros Developer
Github By Nyros Developer
Nyros Technologies
 
Git is a distributed version control system .
Git is a distributed version control system .Git is a distributed version control system .
Git is a distributed version control system .
HELLOWorld889594
 
Introduction to Git for Artists
Introduction to Git for ArtistsIntroduction to Git for Artists
Introduction to Git for Artists
David Newbury
 
Git presentation
Git presentationGit presentation
Git presentation
Vikas Yaligar
 
Git isthenewsexy
Git isthenewsexyGit isthenewsexy
Git isthenewsexy
Ailsa126
 
Gitting the Most From Git
Gitting the Most From GitGitting the Most From Git
Gitting the Most From Git
Chris Miller
 
Introduction To Git Workshop
Introduction To Git WorkshopIntroduction To Git Workshop
Introduction To Git Workshop
themystic_ca
 
Git 101 Workshop
Git 101 WorkshopGit 101 Workshop
Git 101 Workshop
Joy Seng
 
Introduction to git and githhub with practicals.pptx
Introduction to git and githhub with practicals.pptxIntroduction to git and githhub with practicals.pptx
Introduction to git and githhub with practicals.pptx
Abdul Salam
 
GIT-FirstPart.ppt
GIT-FirstPart.pptGIT-FirstPart.ppt
GIT-FirstPart.ppt
ssusered2ec2
 
The Basics of Open Source Collaboration With Git and GitHub
The Basics of Open Source Collaboration With Git and GitHubThe Basics of Open Source Collaboration With Git and GitHub
The Basics of Open Source Collaboration With Git and GitHub
BigBlueHat
 
Git: Why And How to
Git: Why And How toGit: Why And How to
Git: Why And How to
lanhuonga3
 
Git Tutorial I
Git Tutorial IGit Tutorial I
Git Tutorial I
Jim Yeh
 
Introduction to Git and Github
Introduction to Git and GithubIntroduction to Git and Github
Introduction to Git and Github
Somkiat Puisungnoen
 
Git installation and configuration
Git installation and configurationGit installation and configuration
Git installation and configuration
Kishor Kumar
 
Basic Git commands
Basic Git commandsBasic Git commands
Basic Git commands
Jitendra Zaa
 
Let's Git this Party Started: An Introduction to Git and GitHub
Let's Git this Party Started: An Introduction to Git and GitHubLet's Git this Party Started: An Introduction to Git and GitHub
Let's Git this Party Started: An Introduction to Git and GitHub
Kim Moir
 
Beginner's guide to git and github
Beginner's guide to git and github Beginner's guide to git and github
Beginner's guide to git and github
SahilSonar4
 
Git 101 - Crash Course in Version Control using Git
Git 101 - Crash Course in Version Control using GitGit 101 - Crash Course in Version Control using Git
Git 101 - Crash Course in Version Control using Git
Geoff Hoffman
 
Git is a distributed version control system .
Git is a distributed version control system .Git is a distributed version control system .
Git is a distributed version control system .
HELLOWorld889594
 
Introduction to Git for Artists
Introduction to Git for ArtistsIntroduction to Git for Artists
Introduction to Git for Artists
David Newbury
 
Git isthenewsexy
Git isthenewsexyGit isthenewsexy
Git isthenewsexy
Ailsa126
 
Gitting the Most From Git
Gitting the Most From GitGitting the Most From Git
Gitting the Most From Git
Chris Miller
 
Introduction To Git Workshop
Introduction To Git WorkshopIntroduction To Git Workshop
Introduction To Git Workshop
themystic_ca
 
Git 101 Workshop
Git 101 WorkshopGit 101 Workshop
Git 101 Workshop
Joy Seng
 
Introduction to git and githhub with practicals.pptx
Introduction to git and githhub with practicals.pptxIntroduction to git and githhub with practicals.pptx
Introduction to git and githhub with practicals.pptx
Abdul Salam
 
The Basics of Open Source Collaboration With Git and GitHub
The Basics of Open Source Collaboration With Git and GitHubThe Basics of Open Source Collaboration With Git and GitHub
The Basics of Open Source Collaboration With Git and GitHub
BigBlueHat
 
Git: Why And How to
Git: Why And How toGit: Why And How to
Git: Why And How to
lanhuonga3
 
Git Tutorial I
Git Tutorial IGit Tutorial I
Git Tutorial I
Jim Yeh
 
Ad

Recently uploaded (20)

Salesforce AI Associate 2 of 2 Certification.docx
Salesforce AI Associate 2 of 2 Certification.docxSalesforce AI Associate 2 of 2 Certification.docx
Salesforce AI Associate 2 of 2 Certification.docx
José Enrique López Rivera
 
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
SOFTTECHHUB
 
Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025
Splunk
 
How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?
Daniel Lehner
 
Technology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data AnalyticsTechnology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data Analytics
InData Labs
 
Semantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AISemantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AI
artmondano
 
Mobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi ArabiaMobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi Arabia
Steve Jonas
 
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptxDevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
Justin Reock
 
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc
 
Big Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur MorganBig Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur Morgan
Arthur Morgan
 
2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx
Samuele Fogagnolo
 
Automation Dreamin' 2022: Sharing Some Gratitude with Your Users
Automation Dreamin' 2022: Sharing Some Gratitude with Your UsersAutomation Dreamin' 2022: Sharing Some Gratitude with Your Users
Automation Dreamin' 2022: Sharing Some Gratitude with Your Users
Lynda Kane
 
Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
 
Automation Hour 1/28/2022: Capture User Feedback from Anywhere
Automation Hour 1/28/2022: Capture User Feedback from AnywhereAutomation Hour 1/28/2022: Capture User Feedback from Anywhere
Automation Hour 1/28/2022: Capture User Feedback from Anywhere
Lynda Kane
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxSpecial Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
shyamraj55
 
Automation Dreamin': Capture User Feedback From Anywhere
Automation Dreamin': Capture User Feedback From AnywhereAutomation Dreamin': Capture User Feedback From Anywhere
Automation Dreamin': Capture User Feedback From Anywhere
Lynda Kane
 
Image processinglab image processing image processing
Image processinglab image processing  image processingImage processinglab image processing  image processing
Image processinglab image processing image processing
RaghadHany
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
Salesforce AI Associate 2 of 2 Certification.docx
Salesforce AI Associate 2 of 2 Certification.docxSalesforce AI Associate 2 of 2 Certification.docx
Salesforce AI Associate 2 of 2 Certification.docx
José Enrique López Rivera
 
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
SOFTTECHHUB
 
Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025
Splunk
 
How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?
Daniel Lehner
 
Technology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data AnalyticsTechnology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data Analytics
InData Labs
 
Semantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AISemantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AI
artmondano
 
Mobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi ArabiaMobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi Arabia
Steve Jonas
 
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptxDevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
Justin Reock
 
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc
 
Big Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur MorganBig Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur Morgan
Arthur Morgan
 
2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx
Samuele Fogagnolo
 
Automation Dreamin' 2022: Sharing Some Gratitude with Your Users
Automation Dreamin' 2022: Sharing Some Gratitude with Your UsersAutomation Dreamin' 2022: Sharing Some Gratitude with Your Users
Automation Dreamin' 2022: Sharing Some Gratitude with Your Users
Lynda Kane
 
Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
 
Automation Hour 1/28/2022: Capture User Feedback from Anywhere
Automation Hour 1/28/2022: Capture User Feedback from AnywhereAutomation Hour 1/28/2022: Capture User Feedback from Anywhere
Automation Hour 1/28/2022: Capture User Feedback from Anywhere
Lynda Kane
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxSpecial Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
shyamraj55
 
Automation Dreamin': Capture User Feedback From Anywhere
Automation Dreamin': Capture User Feedback From AnywhereAutomation Dreamin': Capture User Feedback From Anywhere
Automation Dreamin': Capture User Feedback From Anywhere
Lynda Kane
 
Image processinglab image processing image processing
Image processinglab image processing  image processingImage processinglab image processing  image processing
Image processinglab image processing image processing
RaghadHany
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
Ad

Github basics

  • 1. GIT & GITHUB BASICS GameCraft Training  Radoslav Georgiev (@Rado_G)
  • 2. DISCLAIMER I’m not a Git expert or pro 
  • 3. Agenda • Why use Source Control System ? • How to setup Git and Github on Windows ? • Terminology • Repositories 1.0 – git {init, add, commit, push, remote} • Repositories 2.0 – .gitignore, git {clone, pull, revert, mv, rm} • Fork & Pull + Shared Repos
  • 4. Why use Source Control Systems ? What is ? Why use ? • SCS are a tool that helps • Keeps the developing keeping versions of the process simple code • All files are hosted • SCS allow multiple (Github) developers to work on the • No nose bleed! same code with minimum • Tons of благинки amount of collisions
  • 5. No Source Control System =
  • 6. Agenda • Why use Source Control System ? • How to setup Git and Github on Windows ? • Terminology • Repositories 1.0 – git {init, add, commit, push, remote} • Repositories 2.0 – .gitignore, git {clone, pull, revert, mv, rm} • Fork & Pull + Shared Repos
  • 7. How to setup Git and Github on Windows? • First of all – create a Github Account • And second : • There’s a great guide @ the Github site - http://help.github.com/win-set-up-git/
  • 8. How to setup Git and Github on Windows? cont’d • You’ll need msysgit (Linux shell) • You’ll have to generate an SSH key-pair • And think of a passphrase ! <- Important • You’ll have to add the SHH keys to your Github account • Then test : $ ssh –T [email protected] some output .. (yes/no) $ yes Hi username! You‟ve successfully authenticated, but Github does not provide shell access. • gg, wp
  • 9. And some configuration ^_^ • Name & Email – Github tracks them $ git config –global user.name “Firstname Lastname” $ git config –global user.email “[email protected]” • Github API token • On the GitHub site Click “Account Settings” > Click “Account Admin.” $ git config –global github.user username $ git config –global github.token the_token
  • 10. DEMO TIME 1) Create a Github account 2) Set up with Windows
  • 11. Agenda • Why use Source Control System ? • How to setup Git and Github on Windows ? • Terminology • Repositories 1.0 – git {init, add, commit, push, remote} • Repositories 2.0 – .gitignore, git {clone, pull, revert, mv, rm} • Fork & Pull + Shared Repos
  • 12. Some basic Terminology • git = the shell command to work with Git • repo = Repository, where the code for a given project is kept • commit = verb, means push the code to the server (in Git, commit = (commit + push) • diff = the difference between two versions of a file • SSH = Secure SHell – Network protocol for communication between machines • RSA = Rivest, Shamir, Adleman – public-key cryptography algorithm $ command Output of the command
  • 13. Agenda • Why use Source Control System ? • How to setup Git and Github on Windows ? • Terminology • Repositories 1.0 – git {init, add, commit, push, remote} • Repositories 2.0 – .gitignore, git {clone, pull, revert, mv, rm} • Fork & Pull + Shared Repos
  • 14. Lets create a repo ! • Click on the new repository button in Github • Start the shell (Git Bash) • Execute the super-complex command : $ git init Initialized empty Git repository in c:/code/TestingGithub/.git/ • Great, now we have repo. Lets create a file, shall we ? $ touch omgrofl.txt $ notepad omgrofl.txt (and add text) or $ echo “rofllol” > omgrofl.txt $ cat omgrofl.txt  cat prints to the output rofllol
  • 15. Lets create a repo ! (cont’d) • Okay, lets add it ! $ git add omgrofl.txt • And commit it  $ git commit –m „This is a commit message‟ Some gitorish output • And for the sake of learning, lets edit it again $ echo “roflcopter” >> omgrofl.txt $ cat omgrofl.txt rofllol roflcopter
  • 16. Lets create a repo ! (cont’d) • And now, lets see : $ git status • Outputs : # On branch master # Changes not staged for commit: # (use "git add <file>..." to update what will be committed) # (use "git checkout -- <file>..." to discard changes in working directory) # # modified: omgrofl.txt • Almost there $ git add omgrofl.txt $ git status
  • 17. How it works? Staging area.
  • 18. What about Github ? Remotes ? • Okay, you suck, there’s nothing @ Github • Damn. Enter magic! $ git remote add origin [email protected]:UserName/ProjectName.git • Git commits locally, pushes remotely !!!!!!! • Add the remote when the repo is created (git init, remember ? ) $ git remote add [name] [url] • Want to see the remotes ? $ git remote -v
  • 19. What about Github ? Push it up, baby! • Okay, we have committed and added a remote to Github. It’s time to push  $ git push origin master Enter passphrase !  • Open up the repo in Github and enjoy ^_^ • The push command explained : $ git push [remote_name] [branch] • Branches are black magic for later  • There’s a big chance that the branch you are pushing to will be named “master”
  • 20. Recap ! Creating a repo • Create a repo $ git init • Add an remote $ git remote add origin [email protected]:UserName/ProjectName.git • Check if directory is a git repo $ ls –la Search for .git folder
  • 21. Recap ! The workflow. • Edit files and check the status $ git status • Add them to the staging area $ git add file1.php file2.php file3.php • Commit the changes $ git commit –m „Commit message that explains the changes‟ • Push them to Github $ git push origin master Enter passphrase! • Celebrate ! 
  • 22. DEMO 1) Create yourself a repo (from Github) 2) Add and Commit few files 3) Push them ! 4) Repeat 2) and 3) few times
  • 23. TAKE A BREAK. We all deserve it 
  • 24. Agenda • Why use Source Control System ? • How to setup Git and Github on Windows ? • Terminology • Repositories 1.0 – git {init, add, commit, push, remote} • Repositories 2.0 – .gitignore, git {clone, pull, revert, mv, rm} • Fork & Pull + Shared Repos
  • 25. Don’t push your passwords • Use .gitignore $ touch .gitignore $ echo “db_config.php” >> .gitignore $ git add .gitignore $ git push origin master Enter passphrase! • Something missing ? $ git commit –m „You are not seeing my passwords!‟
  • 26. Made a mistake ? No worries • Unstage something – git reset $ git add index.php $ git status Says it‟s staged. I don‟t want to ! I changed my mind. $ git reset HEAD – index.php $ git status Now I‟m happy ^_^ • Revert a commit ? Reset hard! $ git reset –hard HEAD~1 OR $ git reset –hard <commit_id>
  • 27. Fork time. • If you want to get a repo – fork is the way. • Fork on github and then $ git clone [email protected]:UserName/ProjectName.git • This inits a new Git repository! • You can do everything with the code now – this is a separate repository. • More @ http://help.github.com/fork-a-repo/
  • 28. Shared repos • If you are added as a collaborator @ some repo – you can do everything (clone, add, commit, push) without restrictions. • Shared repos mean more developers. More Developers = more changes. $ git pull [remote_name] • This will pull the latest changes 