Software Development I

Similar documents
Github/Git Primer. Tyler Hague

Lab 01 How to Survive & Introduction to Git. Web Programming DataLab, CS, NTHU

CESSDA Expert Seminar 13 & 14 September 2016 Prague, Czech Republic

Visualizing Git Workflows. A visual guide to 539 workflows

G E T T I N G S TA R T E D W I T H G I T

Overview. 1. Install git and create a Github account 2. What is git? 3. How does git work? 4. What is GitHub? 5. Quick example using git and GitHub

Using Git to Manage Source RTL

Lab 08. Command Line and Git

git commit --amend git rebase <base> git reflog git checkout -b Create and check out a new branch named <branch>. Drop the -b

GIT. CS 490MT/5555, Spring 2017, Yongjie Zheng

699DR git/github Tutorial

Git. Presenter: Haotao (Eric) Lai Contact:

Git for Subversion users

Introduction to Git and GitHub for Writers Workbook February 23, 2019 Peter Gruenbaum

Common Git Commands. Git Crash Course. Teon Banek April 7, Teon Banek (TakeLab) Common Git Commands TakeLab 1 / 18

1. Which of these Git client commands creates a copy of the repository and a working directory in the client s workspace. (Choose one.

Git and GitHub. Dan Wysocki. February 12, Dan Wysocki Git and GitHub February 12, / 48

CS 390 Software Engineering Lecture 5 More Git

What is version control? (discuss) Who has used version control? Favorite VCS? Uses of version control (read)

Revision Control. How can 4. Slides #4 CMPT 276 Dr. B. Fraser. Local Topology Simplified. Git Basics. Revision Control:

b. Developing multiple versions of a software project in parallel

FAQ Q: Where/in which branch do I create new code/modify existing code? A: Q: How do I commit new changes? A:

Version Control Systems (Part 1)

GETTING TO KNOW GIT: PART II JUSTIN ELLIOTT PENN STATE UNIVERSITY

Intro to Github. Jessica Young

Introduction to Git and Github

Human-Computer Interaction Design

Agenda. - Final Project Info. - All things Git. - Make sure to come to lab for Python next week

Version Control. Second level Third level Fourth level Fifth level. - Software Development Project. January 17, 2018

Git Introduction CS 400. February 11, 2018

GIT FOR SYSTEM ADMINS JUSTIN ELLIOTT PENN STATE UNIVERSITY

Git. Charles J. Geyer School of Statistics University of Minnesota. Stat 8054 Lecture Notes

Object Oriented Programming. Week 1 Part 2 Git and egit

About SJTUG. SJTU *nix User Group SJTU Joyful Techie User Group

Tips on how to set up a GitHub account:

KTH Royal Institute of Technology SEMINAR 2-29 March Simone Stefani -

Version Control Systems: Overview

Git & Github Fundamental by Rajesh Kumar.

git and the virtue of version control ECE /2/2015

Human-Computer Interaction Design

Git for Version Control

Introduction to Git. Database Systems DataLab, CS, NTHU Spring, 2018

Laboratorio di Programmazione. Prof. Marco Bertini

Version control with Git.

Improving Your Life With Git

Version Control. Second level Third level Fourth level Fifth level. - Software Development Project. January 11, 2017

Tutorial 2 GitHub Tutorial

The Old World. Have you ever had to collaborate on a project by

L Modeling and Simulating Social Systems with MATLAB

Software Revision Control for MASS. Git Basics, Best Practices

a handful of Git workflows for the agilist steven harman twitter: stevenharman

Git Guide. Meher Krishna Patel. Created on : Octorber, 2017 Last updated : October, More documents are freely available at PythonDSP

Lecture 2: Data in Linguistics, Git/GitHub, Jupyter Notebook. LING 1340/2340: Data Science for Linguists Na-Rae Han

Version Control with Git

Tizen/Artik IoT Practice Part 4 Open Source Development

Tutorial: Getting Started with Git. Introduction to version control Benefits of using Git Basic commands Workflow

AIS Grid School 2015

Working with GIT. Florido Paganelli Lund University MNXB Florido Paganelli MNXB Working with git 1/47

Code Repository. P Blanchfield

Versioning with git. Moritz August Git/Bash/Python-Course for MPE. Moritz August Versioning with Git

Gitlab Setup/Usage by Yifeng Zhu modified by Vince Weaver 30 January 2019

[Software Development] Development Tools. Davide Balzarotti. Eurecom Sophia Antipolis, France

GIT. A free and open source distributed version control system. User Guide. January, Department of Computer Science and Engineering

MOOSE-Based Application Development on GitLab

Introduction to Git and Github Repositories

DEVNET Introduction to Git. Ashley Roach Principal Engineer Evangelist

git-flow Documentation

CS314 Software Engineering Configuration Management

Fundamentals of Git 1

Version Control Systems (VCS)

About CVS. 1 Version Control - what is it? why is it useful?

Version Control with GIT

Using git to download and update BOUT++

USING GIT FOR AUTOMATION AND COLLABORATION JUSTIN ELLIOTT - MATT HANSEN PENN STATE UNIVERSITY

Getting the files for the first time...2. Making Changes, Commiting them and Pull Requests:...5. Update your repository from the upstream master...

Git: Distributed Version Control

Git! Fundamentals. IT Pro Roundtable! June 17, 2014!! Justin Elliott! ITS / TLT! Classroom and Lab Computing!! Michael Potter!

Git. all meaningful operations can be expressed in terms of the rebase command. -Linus Torvalds, 2015

Software Project (Lecture 4): Git & Github

2 Initialize a git repository on your machine, add a README file, commit and push

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

Git, the magical version control

Software Revision Control for MASS. Git Installation / Configuration / Use

Lab Objective. Lab Assignment. Downloads and Installation

Git Tutorial. André Sailer. ILD Technical Meeting April 24, 2017 CERN-EP-LCD. ILD Technical Meeting, Apr 24, 2017 A. Sailer: Git Tutorial 1/36

Using GitHub for scientific research

Intro to Linux & Command Line

Version Control Systems. Copyright 2017 by Robert M. Dondero, Ph.D. Princeton University

Online Remote Repositories

Git Basi, workflow e concetti avanzati (pt2)

TangeloHub Documentation

Version Control: Gitting Started

Version control CSE 403

Introduction to distributed version control with git

How to be a git. Dominic Mitchell

Project Management. Overview

A L A TEX-oriented intro to Git

CSE 391 Lecture 9. Version control with Git

Git(Lab) Tutorial and Hands-On

Effective Software Development and Version Control

Transcription:

6.148 Software Development I

Two things How to write code for web apps. How to collaborate and keep track of your work.

A text editor

A text editor

A text editor Anything that you re used to using Even notepad works, but you ll probably want something a little more. Most of the staff uses Sublime Text.

A text editor Vim or Emacs? You probably know what you re doing. The rest of you... learning the basics of vim or emacs might be useful

TERMINAL

TERMINAL It s a bit difficult at first, but learn to use it: navigating directories starting servers Git Some of our tools will require the use of the terminal.

GIT a primer in distributed version control

Why Git? Want to keep track of your changes file-v1.html, file-v2.html,...

Why Git? Want to keep track of your changes file-v1.html, file-v2.html,... Collaborate with others -- don t want to overwrite each other s changes

Why Git? Want to keep track of your changes file-v1.html, file-v2.html,... Collaborate with others -- don t want to overwrite each other s changes Keep your source code in some central repository

Why Git? Want to keep track of your changes file-v1.html, file-v2.html,... Collaborate with others -- don t want to overwrite each other s changes Keep your source code in some central repository Easily browse history and debug.

Why Git? Because we require you to use it in 6.148 :)... and most companies use it (or something similar)!

Install Git Linux: sudo apt-get install git-core Mac/Windows: use the installer on the Git website We ll be using the command-line interface (Git Bash for Windows).

Basics Git keeps track of EVERYTHING Even if you delete a file, it s likely you can revert it.

Basics Git keeps track of EVERYTHING Even if you delete a file, it s likely you can revert it. A few dangerous commands -- don t use them unless you know what you re doing! git reset --hard

How to start git clone <repo URL> Takes a repository and clones it into your machine. After you make some changes: git add <filename> for every file, or git add. for the entire directory git commit -m commit message

Try it now! git clone https://github.com/ kongming92/6148demo.git Go into the directory: cd 6148demo Make some changes, add and commit them What happens if you run the command git log?

Collaboration? The staff will give you Github repos after Milestone 0 Git = the software tool you use to manage your changes Github = a website that hosts a central copy of all your code

Using Github After you make some changes, do git push, and your changes will go to Github. Everyone on your team can then browse the code. To get the changes that your teammates made, do git pull.

<<<<<<<< 8b13cf Sometimes when you pull, you will get things that look like garbage. This is a conflict -- Git could not figure out how to combine two different changes. Resolve conflicts manually, then git add / git commit.

Branches the most powerful feature of Git, once you learn to use it correctly

Branches Think of your source code s history as a tree of commits: New features are created, combined into main product Each time you want to try something new, create a branch!

Branches git branch -- show all branches Default branch: master, usually used for stable code git branch <name> -- create a new branch git checkout <name> -- switch branches

Branches So what happens when you re done with a branch? Merge the branch into something else: git checkout master git merge featurebranch Conflicts, just like with pulling

Your turn, pt. 2! Using the same example repo you cloned earlier: Create a branch, and commit some changes. Go back to master. Create a different branch and commit some more changes Merge both back into master Can you trigger a merge conflict?

A few final notes If you have an MIT certificate: go to github.mit.edu. Do it now. This is necessary for Milestone 0. You will need to set up SSH keys! Your Athena username/password will not work! Follow the instructions here: https:// help.github.com/articles/generating-sshkeys/

More on Git... The book, Pro Git, available here: http://gitscm.com/book/en/v2 Collaborative workflows: https:// www.atlassian.com/git/tutorials/comparingworkflows/centralized-workflow Lots of amazing features, none that you absolutely need, but are cool anyways