Git Girish Git VCS that I have used ClearCase, cvs, svn Happy p4 user.

Slides:



Advertisements
Similar presentations
Introduction To GIT Rob Di Marco Philly Linux Users Group July 14, 2008.
Advertisements

Software Configuration Management Donna Albino LIS489, December 3, 2014.
Version Control What it is and why you want it. What is Version Control? A system that manages changes to documents, files, or any other stored information.
Version Control with git. Version Control Version control is a system that records changes to a file or set of files over time so that you can recall.
1 CSE 390 “Lecture 11” Version control with Git slides created by Ruth Anderson, images from
Introduction to Git and Github Joshua imtraum.com.
Git for Version Control These slides are heavily based on slides created by Ruth Anderson for CSE 390a. Thanks, Ruth! images taken from
Fundamentals of Git By Zachary Ling 29 th, Aug,
Chapter - 2 What is “GIT” VERSION CONTROL AND GIT BASICS.
Introduction to Version Control with SVN & Git CSC/ECE 517, Fall 2012 Titus Barik & Ed Gehringer, with help from Gaurav.
علیرضا فراهانی استاد درس: جعفری نژاد مهر Version Control ▪Version control is a system that records changes to a file or set of files over time so.
Why you should be using Version Control. Matt Krass Electrical/Software Engineer November 22, 2014.
GIT An introduction to GIT Source Control. What is GIT (1 of 2) ▪ “Git is a free and open source distributed version control system designed to handle.
ITEC 370 Lecture 16 Implementation. Review Questions? Design document on F, feedback tomorrow Midterm on F Implementation –Management (MMM) –Team roles.
Source Control Primer Patrick Cozzi University of Pennsylvania CIS Spring 2012.
Version Control Systems academy.zariba.com 1. Lecture Content 1.What is Software Configuration Management? 2.Version Control Systems (VCS) 3.Basic Git.
…using Git/Tortoise Git
Git workflow and basic commands By: Anuj Sharma. Why git? Git is a distributed revision control system with an emphasis on speed, data integrity, and.
Team 708 – Hardwired Fusion Created by Nam Tran 2014.
Introduction to Version Control with Git CSC/ECE 517, Fall 2014 A joint project of the CSC/ECE 517 staff, including Titus Barik, Gaurav Tungatkar, Govind.
By: Anuj Sharma. Topics covered:  GIT Introduction  GIT Benefits over different tools  GIT workflow  GIT server creation  How to use GIT for first.
QUICK START OF GITHUB Lin Shuo-Ren 2013/3/6 1. Why We Should Control The Version Although it rains, throw not away your watering pot. All changes should.
1 GIT NOUN \’GIT\ A DISTRIBUTED REVISION CONTROL AND SOURCE CODE MANAGEMENT (SCM) SYSTEM WITH AN EMPHASIS ON SPEED. INITIALLY DESIGNED AND DEVELOPED BY.
A Simple Introduction to Git: a distributed version-control system CS 5010 Program Design Paradigms “Bootcamp” Lesson 0.5 © Mitchell Wand, This.
Version Control System Lisa Palathingal 03/04/2015.
GIT.
Intro to Git presented by Brian K. Vagnini Hosted by.
Version Control and SVN ECE 297. Why Do We Need Version Control?
Introduction to Git Yonglei Tao GVSU. Version Control Systems  Also known as Source Code Management systems  Increase your productivity by allowing.
It’s not just an insult from Harry Potter!. What is Git? Distributed Version Control System (DVCS) – Compared to a Centralized Version Control System.
Information Systems and Network Engineering Laboratory I DR. KEN COSH WEEK 1.
Introduction to Git - Chirag Dani. Objectives Basics of Git Understanding different “Mindset of Git” Demo - Git with Visual Studio.
1 Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free-electrons.com Introduction to Git Thomas.
Getting Started with Git Presented by Jim Taylor Rooty Hollow, Owner Verizon Wireless, Senior Programmer/Analyst Git User for 6 years.
Collaborative Git An introduction to Git with others
GitHub A web-based Git repository hosting service.
Adam Young Presented by Senior Software Engineer, Red Hat License Licensed under PKI, Git and SVN.
SCMs – What, Why and How? ● Sawyer X ● Sysadmin / Perl Ninja ● User of Subversion, Git ● Your host for this evening ● Oh, and... ● SCMs = Source Code Management.
GIT: (a)Gentle InTroduction Bruno Bossola. Agenda About version control Concepts Working locally Remote operations Enterprise adoption Q&A.
Source Control Dr. Scott Schaefer. Version Control Systems Allow for maintenance and archiving of multiple versions of code / other files Designed for.
KIT – University of the State of Baden-Wuerttemberg and National Research Center of the Helmholtz Association STEINBUCH CENTRE FOR COMPUTING - SCC
Dr. Tanusri Bhattacharya
CS5220 Advanced Topics in Web Programming Version Control with Git
Git primer Landon Cox January 19, 2017.
4 Version control (part 1)
I Don’t Git It: A beginner’s guide to git Presented by Mathew Robinson
Version Control Systems
Version Control with Subversion
11 Version control (part 2)
Code Management Releases
Source Control Dr. Scott Schaefer.
Discussion 11 Final Project / Git.
A Simple Introduction to Git: a distributed version-control system
Version Control System using Git
Version Control with Git and GitHub
Version Control System
SU Development Forum Introduction to Git - Save your projects!
Distributed Version Control with git
Akshay Narayan git up to speed with RCS Akshay Narayan
Anatomy of a Git Project
Introduction to Configuration Management
Git CS Fall 2018.
Version Control System - Git
Version control with Git
Introduction to Version Control with Git
Patrick Cozzi University of Pennsylvania CIS Fall 2012
Version Control with Git and GitHub
Systems Analysis and Design I
Git Introduction.
Introduction to The Git Version Control System
Presentation transcript:

Git Girish

Git VCS that I have used ClearCase, cvs, svn Happy p4 user

From git.or.cz Git is a free & open source, distributed version control system designed to handle everything from small to very large projects with speed and efficiency. Every Git clone is a full-fledged repository with complete history and full revision tracking capabilities, not dependent on network access or a central server. Branching and merging are fast and easy to do.

You say... Whoa! Eh, what? So?

One Frequently creating backup files Someone interrupts my work I changed my mind to do something else I want to try another approach I want to make an unrelated “change”

Two The “Big” commit problem I cannot commit until it's done Tracing a problem Branching appears heavy When revisiting my own code

Three Share code with someone I can mail the patch, but this is a hassle UI review – It's only a mockup, not commit material. Code review of big changes - It's easier to explain how I implemented step by step.

Four Speed Speed fucks with your mind. The speed of your tool controls how you think. Distraction Bisecting and branching are unthinkable for me

Five Merge hell Merges often result in conflicts Every merge loses history What are the commits that are being merged? If you periodically merge two branches, you will keep getting conflicts

Six Many minor annoyances In p4, you have to open before edit svn leaves.svn everywhere Cannot work offline

Git So what's this git thingie anyway? Git history

Git Git revisits some of the fundamental assumptions of version control Why is everything on a a server? Space? Power? Incredibly, 14 years of development history can be crunched into under 2 GB. Solution: Keep everything local

Git Don't track files, track content Blobs, trees, commits, branches/tags

Git Consequences of git's repo structure: It's local. It's your repo. Branching is practically a no-op Create a branch whenever you start working on any task Modify your local commits at will (amend, rebase, squash, split) Cherry pick between branches It's blazing fast

Git Sharing changes Why make it centralized? Anyone should be able to pick branches changes from anyone. Solution: Remotes. Add as many as you like (social coding) Svn can be a remote (git-svn)

Git Merge problems Arise because the history of most vcs do not record a merge Solution: Store the commits that created the merge. Tools like annotate can work on originator as opposed to commiter

Git Let's go over all my problem again

One Frequently creating backup files Someone interrupts my work (stash) I changed my mind to do something else (branch) I want to try another approach (branch) I want to make an unrelated “change” (stash, add -i)

Two The “Big” commit problem Because I cannot commit until it's done (commit locally early, often. No one will see your embarassing commits) Tracing a problem (smaller commits are easy to debug) Branching appears heavy (almost a no-op) When revisiting my own code

Three Share code with someone For review (UI, code). I can mail the patch, but the receiver has to deal with merge problems (other person can pull my changes or I can push) For code review, it's easier to explain how I implemented step by step (small commits, easier review)

Four Speed The speed of your tool controls how you think. Distraction Every tried bisecting? Branching? It's fast.

Five Merge hell Merges often result in conflicts Every merge loses history What are the commits that are being merged? If you periodically merge two branches, you will keep getting conflicts Merge commits in git have multiple parents using which history can be tracked and results in better merge.

Git But wait there's more Staging Undo (reflog) Signed tags (for security) Git has a tool for every occasion

Summary Freedom Supports different workflows One is not restricted by the tool It's fast, so we think differently Quality Don't merge until it's ready Commit early, commit often. Easy to track problems. Use it, to appreciate it better.