SlideShare uma empresa Scribd logo
1 de 32
Effective Git
Mayank Bairagi
Sr. Software Consultant
Knoldus Software LLP
Agenda
l

Version control system

l

History

l

Diffrent Types of VCS

l

CVCS vs DVCS

l

Introduction : Git

l

Git terminology

l

Installing Server

l

Branching Wizard

l

Demo Time
Verson Control System
l

Version control is like Wikipedia. You check it for

l

What changes people has made.

l

Inspect these changes

l

Contribute your own.
VCS: Properties
l

Versioning

l

History

l

Collaboration

l

Deletion
Brief History : VCS
Revision Control System : This was the first version control
system , Introduced in early 1980's. A directory of source code
could contains many RCS repositories. Each repository
concerning itself with a single file.
Concurrent Versioned System. : It allowed multiple users to
contribute on a project. It is collection of multiple RCV repository
with network awareness. Dealing with directories was still very
difficult and different then Unix file system.
SubVersion (SVN) : It improved CVS by providing better solution
for directory , history , deletion management.
Centralized VCS

“Centralized version control systems are based on the
idea that there is a single “central” copy of your project
somewhere (probably on a server), and programmers will
“commit” their changes to this central copy.”
SVN : Breif Intro
SVN ..........Continue
Distributed VCS
“distributed revision control system (DVCS) keeps track
of software revisions and allows many developers to
work on a given project without requiring that they
maintain a connection to a common network. It believes
in Peer to Peer approach”
Brief Introduction : GIT
Git is one of the most popular DVCS.
Git was initially designed and developed by Linus Torvalds for
Linux Kernel development in 2005.
Every Git working directory is a full-fledged repository with
complete history and full version tracking capabilities, not
dependent on network access or a central server.
Git is a free software distributed under the term of GNU
General Public License version 2.
Centralized Model
Distributed Model
Distributed Versioning
Multiple Remote Repositories
Git : Terminologies
l

l

l

l

l

Saving State
1 Initialize, add and commit git repo
$ git init
$ git add .
$ git commit -m "My first backup"
Terminology............
Reset : If you have committed junk but not pushed.
$ get reset –hard
reset --hard wipe out all the work and move the head to last
commit. Thus any changes to tracked files in the working tree
since the commit before head are lost.
reset --soft moves the head to specific commit but do not
discard the changes. It will leave all your changed files
"Changes to be committed", as git status would put it.
Terminology............
Reset : If you have committed junk but not pushed.
$ get reset –hard
reset --hard wipe out all the work and move the head to last
commit. Thus any changes to tracked files in the working tree
since the commit before head are lost.
reset --soft moves the head to specific commit but do not
discard the changes. It will leave all your changed files
"Changes to be committed", as git status would put it.
Terminology............
checkout : If you want to switch to old state briefly.
$ git checkout 7554b6
This takes you back in time, while preserving newer commits.
However, like time travel in a science-fiction movie, if you now edit
and commit, you will be in an alternate reality, because your actions
are different to what they were the first time around.
Terminology............

l

$git revert HEAD

revert : If you have committed the just and pushed it as well. This will
create a new commit that reverses everything introduced by the
accidental commit.
Terminology............
$ git rebase -i HEAD~10
Remove commits by deleting lines. Like the revert command, but off
the record: it will be as if the commit never existed.
Reorder commits by reordering lines.
Replace pick with:
edit to mark a commit for amending.
reword to change the log message.
squash to merge a commit with the previous one.
fixup to merge a commit with the previous one and discard the log
message
Terminology............
l

l

$ git stash
$ git stash apply
Terminology............
l

l

l

l

l

l

What you have done ?
$ git diff
Since yesterday
$ git diff @{yesterday}
Bitween perticular version and 2 version ago
$ git diff 2b27 "master~2"
Installing GIT
Creating bare repository
$ git –bare init
Cloning the repository
git clone ssh://user@server.com/~/myrepo.git
Do Some Work and Push to Repo
$git push -u origin <branch-name>
Pull before changing the code
Or
Be Ready For Conflicts
Branching
Creating a branch
$ git branch <branch-name>
Creating a new branch from parent ( commit , branch or tag) and switch
to newly created branch
$ git checkout -b <branch-name> <parent>
Alice and Bob's Key
Quick Fixes
Merging
no local changes, then the merge is a fast forward
if you do have local changes, Git will automatically merge,
and report any conflicts.
Thank You

Mais conteúdo relacionado

Mais procurados

Intro to Git DevOps Tally Presentation 101615
Intro to Git DevOps Tally Presentation 101615Intro to Git DevOps Tally Presentation 101615
Intro to Git DevOps Tally Presentation 101615
Brian K. Vagnini
 
آموزش کار با GIT
آموزش کار با GITآموزش کار با GIT

Mais procurados (20)

Latex with git
Latex with gitLatex with git
Latex with git
 
Git
GitGit
Git
 
Understanding about git
Understanding about gitUnderstanding about git
Understanding about git
 
Gitting out of trouble
Gitting out of troubleGitting out of trouble
Gitting out of trouble
 
Git introduction
Git introductionGit introduction
Git introduction
 
Git 101
Git 101Git 101
Git 101
 
Git and fundamentals
Git and fundamentalsGit and fundamentals
Git and fundamentals
 
Git - The Incomplete Introduction
Git - The Incomplete IntroductionGit - The Incomplete Introduction
Git - The Incomplete Introduction
 
Basic Git
Basic GitBasic Git
Basic Git
 
Git commands
Git commandsGit commands
Git commands
 
Collaboration With Git and GitHub
Collaboration With Git and GitHubCollaboration With Git and GitHub
Collaboration With Git and GitHub
 
Introducción a Git
Introducción a GitIntroducción a Git
Introducción a Git
 
Git (Sistema Distribuido de Control de Versiones)
Git (Sistema Distribuido de Control de Versiones)Git (Sistema Distribuido de Control de Versiones)
Git (Sistema Distribuido de Control de Versiones)
 
Tài liệu sử dụng GitHub
Tài liệu sử dụng GitHubTài liệu sử dụng GitHub
Tài liệu sử dụng GitHub
 
Extra bit with git
Extra bit with gitExtra bit with git
Extra bit with git
 
Intro to Git DevOps Tally Presentation 101615
Intro to Git DevOps Tally Presentation 101615Intro to Git DevOps Tally Presentation 101615
Intro to Git DevOps Tally Presentation 101615
 
Extra bit with git
Extra bit with gitExtra bit with git
Extra bit with git
 
01 - Git vs SVN
01 - Git vs SVN01 - Git vs SVN
01 - Git vs SVN
 
آموزش کار با GIT
آموزش کار با GITآموزش کار با GIT
آموزش کار با GIT
 
Git basic
Git basicGit basic
Git basic
 

Semelhante a Knolx master-slides

Semelhante a Knolx master-slides (20)

Git introduction
Git introductionGit introduction
Git introduction
 
Exprimiendo GIT
Exprimiendo GITExprimiendo GIT
Exprimiendo GIT
 
Git_tutorial.pdf
Git_tutorial.pdfGit_tutorial.pdf
Git_tutorial.pdf
 
Git training (basic)
Git training (basic)Git training (basic)
Git training (basic)
 
Learning git
Learning gitLearning git
Learning git
 
git2.ppt
git2.pptgit2.ppt
git2.ppt
 
1-Intro to VC & GIT PDF.pptx
1-Intro to VC & GIT PDF.pptx1-Intro to VC & GIT PDF.pptx
1-Intro to VC & GIT PDF.pptx
 
Git for developers
Git for developersGit for developers
Git for developers
 
390a gitintro 12au
390a gitintro 12au390a gitintro 12au
390a gitintro 12au
 
Git and github
Git and githubGit and github
Git and github
 
Git like a pro EDD18 - Full edition
Git like a pro EDD18 - Full editionGit like a pro EDD18 - Full edition
Git like a pro EDD18 - Full edition
 
Hacktoberfest intro to Git and GitHub
Hacktoberfest intro to Git and GitHubHacktoberfest intro to Git and GitHub
Hacktoberfest intro to Git and GitHub
 
Git for a newbie
Git for a newbieGit for a newbie
Git for a newbie
 
Learn Git Basics
Learn Git BasicsLearn Git Basics
Learn Git Basics
 
sample.pptx
sample.pptxsample.pptx
sample.pptx
 
Subversion to Git Migration
Subversion to Git MigrationSubversion to Git Migration
Subversion to Git Migration
 
Git and Github
Git and GithubGit and Github
Git and Github
 
GIT Basics
GIT BasicsGIT Basics
GIT Basics
 
setting up a repository using GIT
setting up a repository using GITsetting up a repository using GIT
setting up a repository using GIT
 
Version control with GIT
Version control with GITVersion control with GIT
Version control with GIT
 

Último

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

Último (20)

Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
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...
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.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...
 
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
 
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)
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 

Knolx master-slides

  • 1. Effective Git Mayank Bairagi Sr. Software Consultant Knoldus Software LLP
  • 2. Agenda l Version control system l History l Diffrent Types of VCS l CVCS vs DVCS l Introduction : Git l Git terminology l Installing Server l Branching Wizard l Demo Time
  • 3. Verson Control System l Version control is like Wikipedia. You check it for l What changes people has made. l Inspect these changes l Contribute your own.
  • 5. Brief History : VCS Revision Control System : This was the first version control system , Introduced in early 1980's. A directory of source code could contains many RCS repositories. Each repository concerning itself with a single file. Concurrent Versioned System. : It allowed multiple users to contribute on a project. It is collection of multiple RCV repository with network awareness. Dealing with directories was still very difficult and different then Unix file system. SubVersion (SVN) : It improved CVS by providing better solution for directory , history , deletion management.
  • 6. Centralized VCS “Centralized version control systems are based on the idea that there is a single “central” copy of your project somewhere (probably on a server), and programmers will “commit” their changes to this central copy.”
  • 7. SVN : Breif Intro
  • 9. Distributed VCS “distributed revision control system (DVCS) keeps track of software revisions and allows many developers to work on a given project without requiring that they maintain a connection to a common network. It believes in Peer to Peer approach”
  • 10. Brief Introduction : GIT Git is one of the most popular DVCS. Git was initially designed and developed by Linus Torvalds for Linux Kernel development in 2005. Every Git working directory is a full-fledged repository with complete history and full version tracking capabilities, not dependent on network access or a central server. Git is a free software distributed under the term of GNU General Public License version 2.
  • 15. Git : Terminologies l l l l l Saving State 1 Initialize, add and commit git repo $ git init $ git add . $ git commit -m "My first backup"
  • 16. Terminology............ Reset : If you have committed junk but not pushed. $ get reset –hard reset --hard wipe out all the work and move the head to last commit. Thus any changes to tracked files in the working tree since the commit before head are lost. reset --soft moves the head to specific commit but do not discard the changes. It will leave all your changed files "Changes to be committed", as git status would put it.
  • 17. Terminology............ Reset : If you have committed junk but not pushed. $ get reset –hard reset --hard wipe out all the work and move the head to last commit. Thus any changes to tracked files in the working tree since the commit before head are lost. reset --soft moves the head to specific commit but do not discard the changes. It will leave all your changed files "Changes to be committed", as git status would put it.
  • 18. Terminology............ checkout : If you want to switch to old state briefly. $ git checkout 7554b6 This takes you back in time, while preserving newer commits. However, like time travel in a science-fiction movie, if you now edit and commit, you will be in an alternate reality, because your actions are different to what they were the first time around.
  • 19. Terminology............ l $git revert HEAD revert : If you have committed the just and pushed it as well. This will create a new commit that reverses everything introduced by the accidental commit.
  • 20. Terminology............ $ git rebase -i HEAD~10 Remove commits by deleting lines. Like the revert command, but off the record: it will be as if the commit never existed. Reorder commits by reordering lines. Replace pick with: edit to mark a commit for amending. reword to change the log message. squash to merge a commit with the previous one. fixup to merge a commit with the previous one and discard the log message
  • 22. Terminology............ l l l l l l What you have done ? $ git diff Since yesterday $ git diff @{yesterday} Bitween perticular version and 2 version ago $ git diff 2b27 "master~2"
  • 24. Creating bare repository $ git –bare init
  • 25. Cloning the repository git clone ssh://user@server.com/~/myrepo.git
  • 26. Do Some Work and Push to Repo $git push -u origin <branch-name>
  • 27. Pull before changing the code Or Be Ready For Conflicts
  • 28. Branching Creating a branch $ git branch <branch-name> Creating a new branch from parent ( commit , branch or tag) and switch to newly created branch $ git checkout -b <branch-name> <parent>
  • 31. Merging no local changes, then the merge is a fast forward if you do have local changes, Git will automatically merge, and report any conflicts.

Notas do Editor

  1. $ git –bare init