Git is a distributed revision control and source code management system with an emphasis on speed. Git was initially designed and developed by Linus Torvalds for Linux kernel development. Git is a free software distributed under the terms of the GNU General Public License version 2. This tutorial explains how to use Git for project version control in a distributed environment while working on web-based and non web-based applications development.
I have created this course for Queen Mary University of London alumni. They have already finished the exams and the purpose of this course is to improve their skills.
Git is a distributed revision control and source code management system with an emphasis on speed. Git was initially designed and developed by Linus Torvalds for Linux kernel development. Git is a free software distributed under the terms of the GNU General Public License version 2. This tutorial explains how to use Git for project version control in a distributed environment while working on web-based and non web-based applications development.
I have created this course for Queen Mary University of London alumni. They have already finished the exams and the purpose of this course is to improve their skills.
Getting Started with Git: A Primer for SVN and TFS UsersNoam Kfir
I gave this presentation at the Israeli ALM User Group.
This is part 1 of a 2 part series on Git and Git workflows and introduces the most basic Git functionality, especially as it differs from the Subversion and TFS version control systems.
Git 101: Force-sensitive to Jedi padawanJames Ford
What is Git? What does it do, how does it work, how does it fit into my workflow?
If you've ever wondered about the answers to any of those things, this session is designed for you, my friend.
Starting with the assumption of no prior knowledge of Git or even of version control, we'll cover the technology at a theoretical level, its manifestation in your projects in the physical level, and your development workflow at the practical level - by which time you'll be ready to step out into the world, secure in your knowledge of what the heck Git is, and ready to use it in your projects - and you'll marvel at how you ever worked without it.
GitLab 8.5 Highlights and Step-by-step tutorialHeather McNamee
In this webcast, learn how to collaborate with GitLab. You'll see new features from GitLab 8.5 in practice. Check out our blog for more information. https://about.gitlab.com/2016/02/26/webcast-wrapup/
These slides are part of a webcast we delivered, including the following parts:
-- Introducing GitLab and some of its differences over Git
-- Some interesting facts about GitLab
-- Demonstrating full development life-cycle using GitLab
-- Success story: we hosted host Matan Keidar from Thomson Reuters company, and he demonstrated how they use GitLab with Jenkins and Slack as part of their development life-cycle
-- Questions and answers
More information about GitLab is available at http://almtoolbox.com/gitlab
The Basics of Open Source Collaboration With Git and GitHubBigBlueHat
A revised/minimized version of Nick Quaranto's (http://www.slideshare.net/qrush ) presentation on the same topic. This revised version was used to present Git to a group of students at ECPI who were not yet familiar with the concepts of version control or Git.
This lecture is the first part of an introduction to SVC tools with a focus on Git and GitHub. This Lecture discusses the basic concepts as well as Installation and initial configuration of Git
Getting Started with Git: A Primer for SVN and TFS UsersNoam Kfir
I gave this presentation at the Israeli ALM User Group.
This is part 1 of a 2 part series on Git and Git workflows and introduces the most basic Git functionality, especially as it differs from the Subversion and TFS version control systems.
Git 101: Force-sensitive to Jedi padawanJames Ford
What is Git? What does it do, how does it work, how does it fit into my workflow?
If you've ever wondered about the answers to any of those things, this session is designed for you, my friend.
Starting with the assumption of no prior knowledge of Git or even of version control, we'll cover the technology at a theoretical level, its manifestation in your projects in the physical level, and your development workflow at the practical level - by which time you'll be ready to step out into the world, secure in your knowledge of what the heck Git is, and ready to use it in your projects - and you'll marvel at how you ever worked without it.
GitLab 8.5 Highlights and Step-by-step tutorialHeather McNamee
In this webcast, learn how to collaborate with GitLab. You'll see new features from GitLab 8.5 in practice. Check out our blog for more information. https://about.gitlab.com/2016/02/26/webcast-wrapup/
These slides are part of a webcast we delivered, including the following parts:
-- Introducing GitLab and some of its differences over Git
-- Some interesting facts about GitLab
-- Demonstrating full development life-cycle using GitLab
-- Success story: we hosted host Matan Keidar from Thomson Reuters company, and he demonstrated how they use GitLab with Jenkins and Slack as part of their development life-cycle
-- Questions and answers
More information about GitLab is available at http://almtoolbox.com/gitlab
The Basics of Open Source Collaboration With Git and GitHubBigBlueHat
A revised/minimized version of Nick Quaranto's (http://www.slideshare.net/qrush ) presentation on the same topic. This revised version was used to present Git to a group of students at ECPI who were not yet familiar with the concepts of version control or Git.
This lecture is the first part of an introduction to SVC tools with a focus on Git and GitHub. This Lecture discusses the basic concepts as well as Installation and initial configuration of Git
In one of our weekly training, we’ve talked about Git. Here is a quick overview of the main concepts, basic commands and branching strategy, how to work with Git, how to contribute to an OSS project, …
Git 101 - Crash Course in Version Control using GitGeoff Hoffman
Find out why more and more developers are switching to Git - distributed version control. This intro to Git covers the basics, from cloning to pushing for beginners.
a way to manage files and directories.
track changes over time.
recall previous versions.
source control is subset of VCS.
sharing on multiple computers
Types of vcs:
Local VCS
Centralized VCS
Distributed VCS
Features of git
commands in git
GitHub is a web-based hosting service for version control using git. It is mostly used for computer code. It offers all of the distributed version control and source code management (SCM) functionality of Git as well as adding its own features. It provides access control and several collaboration features such as bug tracking, feature requests, task management, and wikis for every project
2. What is Git?
• Git is a flavour of
Source Control Management
(aka revision control, version control)
• It is an open source command line tool
with many GUIs available
• Created by Linus Torvalds to maintain the
Linux kernal
3. Why use Version Control?
• Rollback to working version
• Extra redundant backups
• Keep dependencies updated
• Move towards collaborative coding
• Social proof: an extra point of presence
(also StackExchange, StudioPress forums)
4. Setting Up
• Create a repo from
scratch or by cloning
• Stage files / hunks
• Commit to the repo
5. The basic Git workflow
• You modify files in your working directory.
• You stage the files, adding snapshots of them
to your staging area.
• You do a commit, which takes the files as they
are in the staging area and stores that
snapshot permanently to your Git directory.
http://git-scm.com/book/en/Getting-Started-Git-Basics
6. Underpinnings
• Git = two 'tricks':
• Commit blob
• Move pointers
(HEAD, branch)
• Theory video:
Git For Ages 4 And Up
7. Committing
• "…a commit's ID is a SHA-1 hash of
several pieces of information: the contents
of the commit, and the IDs of its parent
commits."
http://think-like-a-git.net/sections/graphs-and-git/garbage-collection.html
8. Branch and Merge
• Testing Out Merges
• The Scout Pattern (merge on a new
branch)
• The Save Point (merge on master)
• "Black Belt" (no branches)
http://think-like-a-git.net/sections/testing-out-merges.html
12. Terminology
• Repository / Repo: the .git filesystem which contains the project history and
settings
• Staging area / index / cache: files (or 'hunks' of code) which will be committed
• Working Copy: the directory you're working in, may not be staged or
committed yet
• Hash: A checksum which acts as a unique identifier for your commit. Also
guarantees file integrity.
• Commit: create a snapshot or restore point, to which you can return in
future (n: the snapshot itself)
• Checkout: sync your Working Copy with the selected commit
• Clone: to download a copy of a repository
• Branch: an active line of development
• Head: a reference to the branch you're working on
• Master: the default development branch
13. Terminology
• Merge: to integrate changes from another branch into the
current
• Tag: a label which acts like a 'bookmark', generally used for
tagging release versions.
• Rebase: funky merge.. think cherry picks & hard reset: Using
'git cherry-pick' to Simulate 'git rebase'
• Fork: to make modifications to someone else's project
• Push: send changes to a remote server
• Fetch: receive changes from a remote server
• Pull: Fetch & merge in one operation
http://www.kernel.org/pub/software/scm/git/docs/gitglossary.html#
14. Free Tools
• SourceTree by Atlassian
• GitHub for Mac
• 5 Windows Git Clients To ‘Git’ The Job
Done
16. Wordpress & Git
• The WordPress core team uses SVN
natively, but syncs to Git every 15 minutes,
so folk who prefer Git can follow along:
https://github.com/WordPress/WordPress
17. Further Reading
• Think Like (a) Git: conversational clarity -
the simplest read on understanding Git.
• Git Documentation: really clear, easy to
read, the definitive resource. Free PDF
• CSStricks: Let’s Suck at GitHub Together
• CSStricks: Getting off FTP and onto Git
Deployment with Beanstalk