Version Control with Git

Similar documents
Version Control with Git. Linux Users Group UT Arlington. Rohit Rawat

Version Control! Scenarios, Working with Git!

Version Control. Version Control

Version Control with Git. Dylan Nugent

Version control with GIT

Version Control using Git and Github. Joseph Rivera

Annoyances with our current source control Can it get more comfortable? Git Appendix. Git vs Subversion. Andrey Kotlarski 13.XII.

Introduction to Version Control

MATLAB & Git Versioning: The Very Basics

Version Control with Svn, Git and git-svn. Kate Hedstrom ARSC, UAF

Git Basics. Christopher Simpkins Chris Simpkins (Georgia Tech) CS 2340 Objects and Design CS / 22

Introduction to the Git Version Control System

Lab Exercise Part II: Git: A distributed version control system

Version Control with Git. Kate Hedstrom ARSC, UAF

Introduc)on to Version Control with Git. Pradeep Sivakumar, PhD Sr. Computa5onal Specialist Research Compu5ng, NUIT

MOOSE-Based Application Development on GitLab

Version Control with. Ben Morgan

Introduction to Version Control with Git

Version Control with Git

Distributed Version Control with Mercurial and git

PKI, Git and SVN. Adam Young. Presented by. Senior Software Engineer, Red Hat. License Licensed under

CSE 374 Programming Concepts & Tools. Laura Campbell (Thanks to Hal Perkins) Winter 2014 Lecture 16 Version control and svn

Using Git for Project Management with µvision

Data management on HPC platforms

FEEG Applied Programming 3 - Version Control and Git II

Version Control Tutorial using TortoiseSVN and. TortoiseGit

CPSC 491. Today: Source code control. Source Code (Version) Control. Exercise: g., no git, subversion, cvs, etc.)

Version Control Systems: SVN and GIT. How do VCS support SW development teams?

Source Control Systems

Version Control Systems

Version Control Script

Derived from Chris Cannam's original at, an.

Version Uncontrolled! : How to Manage Your Version Control

Two Best Practices for Scientific Computing

Git. A Distributed Version Control System. Carlos García Campos carlosgc@gsyc.es

Version control. with git and GitHub. Karl Broman. Biostatistics & Medical Informatics, UW Madison

Software Configuration Management. Slides derived from Dr. Sara Stoecklin s notes and various web sources.

Introduction to Version Control with Git

CS 2112 Lab: Version Control

An Introduction to Mercurial Version Control Software

The Hitchhiker s Guide to Github: SAS Programming Goes Social Jiangtang Hu d-wise Technologies, Inc., Morrisville, NC

Git - Working with Remote Repositories

Advanced Computing Tools for Applied Research Chapter 4. Version control

Introduction to Git. Markus Kötter Notes. Leinelab Workshop July 28, 2015

A Git Development Environment

Miguel A. Figueroa Villanueva Xabriel J. Collazo Mojica. ICOM 5047 Capstone Miguel A. Figueroa Villanueva University of Puerto Rico Mayagüez Campus

Content. Development Tools 2(63)

Version Control for Computational Economists: An Introduction

Revision control systems (RCS) and

Zero-Touch Drupal Deployment

Git Basics. Christian Hanser. Institute for Applied Information Processing and Communications Graz University of Technology. 6.

Introducing Xcode Source Control

Version control. HEAD is the name of the latest revision in the repository. It can be used in subversion rather than the latest revision number.

Git Tutorial - How to Create a Full Project

Introduction to Software Engineering (2+1 SWS) Winter Term 2009 / 2010 Dr. Michael Eichberg Vertretungsprofessur Software Engineering Department of

Software Engineering Practices for Python

CSCB07 Software Design Version Control

How to set up SQL Source Control. The short guide for evaluators

Module 11 Setting up Customization Environment

Continuous Integration. CSC 440: Software Engineering Slide #1

An Introduction to Mercurial Version Control Software

Work. MATLAB Source Control Using Git

Software Configuration Management and Continuous Integration

Version Control with Mercurial and SSH

CSE 70: Software Development Pipeline Version Control with Subversion, Continuous Integration with Bamboo, Issue Tracking with Jira

Version Control. Luka Milovanov

Intro etckeeper bup ikiwiki git-annex vcsh mr Zsh Outro. Gitify your life. web, blog, configs, data, and backups

Unity Version Control

Using Git for Centralized and Distributed Version Control Workflows - Day 3. 1 April, 2016 Presenter: Brian Vanderwende

How to Create a Free Private GitHub Repository Educational Account

Git Branching for Continuous Delivery

Software Version Control With Mercurial and Tortoise Hg

Version Control with Subversion

An Introduction to Git Version Control for SAS Programmers

Using GitHub for Rally Apps (Mac Version)

DAVE Usage with SVN. Presentation and Tutorial v 2.0. May, 2014

How To Manage Change In Jeepers

Developer Workshop Marc Dumontier McMaster/OSCAR-EMR

Subversion. Nadir SOUALEM. Linux Users subversion client svn or higher. Windows users subversion client Tortoise 1.6.

Secure Linux Administration Conference Bernd Strößenreuther

Putting It All Together. Vagrant Drush Version Control

CS108, Stanford Handout #33. CVS in Eclipse

CISC 275: Introduction to Software Engineering. Lab 5: Introduction to Revision Control with. Charlie Greenbacker University of Delaware Fall 2011

Software configuration management

Pro Git. Scott Chacon *

Version control with Subversion

Source Code Management for Continuous Integration and Deployment. Version 1.0 DO NOT DISTRIBUTE

Gitflow process. Adapt Learning: Gitflow process. Document control

Git, GitHub & Web Hosting Workshop

Transcription:

Version Control with Git Ben Wasserman (benjamin@cmu.edu) 15-441 Computer Networks Recitation 3 1/28

What is version control? Revisit previous code versions Backup projects Work with others Find where things broke 2/28

Version Control Workflow Check for any remote updates Do your work Test your work Check differences, try to isolate changes Check for any remote updates Commit your work 3/28

Git Subversion (svn) Mercurial (hg) Bazaar (bzr) CVS Dropbox Others Options 4/28

svn Usually remotely hosted, shared with a team. svn Repository svn commit svn checkout svn update Your private universe, before commit. Working Copy 5/28

git push git kernel@ghub git push torvalds git pull bgilbert No notion of working copy each is a full repository. git push git pull jaharkes git pull abalacha git pull wolf git pull 6/28

7/28

Creating a Repository (repo) Create locally git init. Create remote git init -bare Clone local copy git clone git://path/to/repo 8/28

No-bare --bare or not? Creates a repository in your working directory Don t need to create multiple copies of your repo Won t help if you nuke the directory/disk This is probably what you need if you ll work in AFS --bare Creates a server copy for hosting the project Workflow more similar to svn (but still better) Everyone pushes to shared bare repo (like svn) You don t work in this copy; must clone elsewhere You want this to develop on your PC 9/28

Aside: network protocols Use different protocols to pull/push to repositories. If on the same computer: git://path/to/repo If hosted on AFS ssh+git://path/to/repo No ssh keys for AFS, sorry 10/28

Aside: Configure git git config --global user.name Ben Wasserman git config --global user.email benjamin@cmu.edu 11/28

Clone Pull a copy of the repo to develop on git clone git://path/to/repo git clone ssh+git://unix.andrew.cmu.edu/afs/and rew/course/15/441-641/andrewid/andrewid-15-441-project- 1.git 12/28

status Which files changed? Which files aren t being watched? Which files are stashed for commit? git status 13/28

Pull Get latest updates from remote copy git pull If this fails, you probably need to commit any unsaved changes 14/28

Commit Merge your changes into the repository git add foo.c git commit 15/28

Push Don t push broken code!! git push If this fails, you probably need to pull first 16/28

Branch & Merge Work on something different, without disturbing master/trunk git branch branch_name git checkout branch_name do stuff git checkout master git merge branch_name 17/28

Tag Mark a revision as final or ready git tag tag_name git push --tags 18/28

github.com bitbucket.org svnhub.com AFS Google code Sourceforge Remote Hosting 19/28

Aside: AFS Permissions To make a bare repo in AFS that someone else can pull/push from: 1. Make a new directory in your home dir 2. fs sa. ANDREWID rlidwk 3. git init --bare 20/28

Good practices Small commits Useful messages Commit frequently Develop in branches Tag releasable versions 21/28

Small commits Only change one thing per commit When something breaks, easier to trace 22/28

Helpful commit messages Say what you changed Keep the first line short Make commits easy to find www.commitlogsfromlastnight.com 23/28

Commit Frequently Make changes, commit them When something breaks, go to the commit that broke it Only push when ready for others to get the changes Don t make your teammates hate you 24/28

Git questions? 25/28

Checkpoint 2 Add basic HTTP server Read RFC 2616 Start by parsing and building HTTP headers Serve error messages Then HEAD requests Then GET Then POST 26/28

Wireshark Packet monitoring software Install it. Use it. You will want this to examine the HTTP headers you re sending/receiving Do the Wireshark question on HW1 27/28

All questions? 28/28