Git. Objektumorientált szoftvertervezés Object-oriented software design. Dr. Balázs Simon BME, IIT

Size: px
Start display at page:

Download "Git. Objektumorientált szoftvertervezés Object-oriented software design. Dr. Balázs Simon BME, IIT"

Transcription

1 Git Objektumorientált szoftvertervezés Object-oriented software design Dr. Balázs Simon BME, IIT

2 Outline Version control Git version control Best practices for using Git Sources: Ryan Hodson: Ry's Git Tutorial Dr. Balázs Simon, BME, IIT 2

3 Version control Dr. Balázs Simon, BME, IIT 3

4 Version control Management of changes of a set of files documents, computer programs and other collections of information Other names: source control, revision control Changes are identified by an identifier called revision or revision number usually a number or a string identifier A version control system (VCS) allows: revert a set of files or an entire project back to a previous state compare changes over time see who modified the files and what modifications they made recover files which get lost or corrupted Dr. Balázs Simon, BME, IIT 4

5 Manual version control Before automatic version control systems Simplest form of version control Manually copy files and folders and give them new names Problems: inconsistent revision numbers, especially if the document is shared between people e.g. doc-2016-v12.5-dh-2-lk-3.docx mislabeling a file or folder forgetting to save an important stage accidentally overwriting the wrong file or folder you will never know if you lost something important Dr. Balázs Simon, BME, IIT 5

6 Local version control Store different versions of the files in a database on the local computer Whenever we need an older version we look it up in the database and check it out We only have a single copy at any given time Therefore, we can t mix up or lose revisions Problem: files cannot be shared with other people Database Files Different versions Dr. Balázs Simon, BME, IIT 6

7 Centralized version control Store different versions of the files in a database on a central server Developers check out files from this central database and save them back over a network Several people can collaborate Central administrative control over who can do what This model has been the standard of version control for a long time (e.g. CVS, SVN) Problems: Central VCS Server the server is a single point of failure if it goes down, nobody can work if the disk gets corrupted, everything is lost (if there were no backups) conflicting changes have to be manually resolved until then nobody can work User 1 Dr. Balázs Simon, BME, IIT 7 User 2 User 3

8 Distributed version control Every developer has a local copy of the entire repository, including the history no single point of failure anymore easy to restore from any local copy We have a distributed network of repositories although we can have a designated central repository for synchronizing between users Each developer can work in isolation at their own pace store updates locally put off merging conflicts until their convenience Efficient management of branches experimenting with different ideas Development is much faster no need to perform actions over a network User 1 User 2 User 3 Dr. Balázs Simon, BME, IIT 8

9 Git Dr. Balázs Simon, BME, IIT 9

10 Git Distributed version control system (DVCS) Written by Linus Torvalds for managing the Linux kernel source Design goals: reliability efficient management of large projects support for distributed development support for non-linear development Git became stable and very popular over the years Most popular central server for remote repositories: GitHub Git is a command line tool but it has graphical wrappers, e.g. TortoiseGit Dr. Balázs Simon, BME, IIT 10

11 Git concepts Working directory: current files you see in the file system Tracked files: files under version control Git ignores untracked files e.g. don t track binaries and generated files, since they are very big, they change frequently, and they can always be reproduced by compiling the source Staged snapshot (index/cache): set of file paths (not the file contents!) selected for the next commit staging is a preparation for the next commit sometimes we don t want all the changed files to be included in the next commit: in the staging phase we can select the ones we want or we can select all of them Committed snapshot: a recorded staged snapshot with a descriptive message committing puts the files selected in the staged snapshot into the local repository committed snapshots are safe versions of the project, Git will never change them: this is what we want from a version control system Development branch: a branch is an independent line of development, a series of committed snapshots contains an experiment of a new idea/bugfix/feature without affecting other branches Dr. Balázs Simon, BME, IIT 11

12 Git operations Local computer Network add/remove commit commit all push workspace staging local repository remote repository clone/pull reset/checkout/merge/rebase fetch reset/checkout diff diff HEAD Dr. Balázs Simon, BME, IIT 12

13 Git commands Local computer Network git add/rm/mv git commit git commit -a git push workspace staging local repository remote repository git clone/pull git fetch git reset/checkout/merge/rebase <commit> git reset/checkout <file> git diff git diff HEAD Dr. Balázs Simon, BME, IIT 13

14 Git repository Creating a local repository: my-repo New empty local repository: go into the my-repo directory.git (local repository) issue the following command: git init this creates a.git hidden directory which contains the local repository New empty local bare repository, which can be used as a central remote repository by developers: git init --bare Cloning an existing remote repository as a new local repository: git clone <url> creates a new my-repo directory with the.git hidden folder inside Check the status of a repository: git status shows changed and untracked files View repository history: git log git log --oneline my files and folders (workspace) Dr. Balázs Simon, BME, IIT 14

15 Configuring git Global user name and used for all repositories on the computer as default git config --global user.name My Name git config --global user. Repository specific name and used for the specific repository only git config user.name My Name git config user. Dr. Balázs Simon, BME, IIT 15

16 Staging Staging is a preparation for the next commit Add a file for staging (also for tracking if it is not yet tracked): git add <filename> undo: git reset <filename> Rename a tracked file and add for staging: git mv <from> <to> undo: git mv <to> <from> Delete a tracked file and add for staging: git rm <filename> undo (be careful with these, you can lose uncommitted changes): git reset -- <filename> git checkout -- <filename> git add/rm/mv git commit Local computer Network git commit -a git push workspace staging local repository remote repository Dr. Balázs Simon, BME, IIT 16

17 Commit Create a local committed snapshot from the current stage: git commit -m Commit message Commit all modified tracked files (no need for staging): git commit -a -m Commit message A committed snapshot is safe, it will not be changed anymore Local computer Network git add/rm/mv git commit git commit -a git push workspace staging local repository remote repository Dr. Balázs Simon, BME, IIT 17

18 Push Push all local commits to the remote repository: git push <remote> <branch> pushes the specific branch git push <remote> --all pushes all branches the remote is origin if the repository was created with clone the remote can be a URL of a remote repository Never push to other developers local repositories directly! Only push to bare ( central ) repositories, which don t have working directories! Push will fail if the remote branch has changed since the last push: at first we need to merge remote and local changes to do that we need to pull/fetch the remote changes to our local computer git add/rm/mv git commit Local computer Network git commit -a git push workspace staging local repository remote repository Dr. Balázs Simon, BME, IIT 18

19 Fetch Downloads all commits and files from the remote repository git fetch <remote> fetches all branches git fetch <remote> <branch> fetches only the specified branch Gives access to the entire branch structure of another repository Fetch will not overwrite our local branches, it only creates remote branches (branches prefixed by their remote names) e.g. origin/master, origin/some-nice-feature, origin/v1 etc. The downloaded remote branches can be listed with: git branch -r Local computer Network workspace staging local repository remote repository git pull git merge/rebase <commit> git fetch 19

20 Merge and Rebase When two branches diverge from each other, then we eventually need to bring them together e.g. the remote branch and the local branch both evolved parallel to each other, and we need to push our local branch to the remote repository Merge: add changes from another branch to the current branch git merge origin/master e.g. add everyone else s changes to my changes Rebase: add changes from our current branch to the other branch git rebase origin/master e.g. add my changes to everyone else s changes Both merge and rebase create a new commit: this commit can now be pushed to the remote repository both branches point to this new commit Local computer Network workspace staging local repository remote repository git pull git merge/rebase <commit> git fetch 20

21 Pull Combines fetch and merge/rebase in a single command Fetch+merge for the current branch: git pull <remote> same as: git fetch <remote> git merge origin/<current-branch> Fetch+rebase for the current: git pull --rebase <remote> same as: git fetch <remote> git rebase origin/<current-branch> Local computer Network workspace staging local repository remote repository git pull git merge/rebase <commit> git fetch 21

22 Branch A branch is an independent line of development, a series of committed snapshots snapshots/revisions are identified by their SHA-1 checksums the currently checked-out snapshot is called HEAD A branch contains an experiment of a new idea/bugfix/feature without affecting other branches List all branches: git branch Create a new branch (does not switch to the branch!): git branch <branch-name> Switch to a branch: git checkout <branch-name> Branches are lightweight, they are only a series of committed snapshots master forking happens only when we commit a new snapshot to the new branch Dr. Balázs Simon, BME, IIT 22

23 Branching examples Initial state: master a b c d e older revisions HEAD current branch The working directory contains revision e. We are at the HEAD of the master branch. After the following command: git checkout d a b c d master e The working directory contains revision d. Since no branch points to the HEAD, we are on no branch, we cannot commit! After the following commands: git branch hello git checkout hello a b c d master e We are at the HEAD of the hello branch. A new commit will fork from revision d. hello Dr. Balázs Simon, BME, IIT 23

24 Branching examples From the previous slide: master a b c d e hello After some changes and the following command: git commit -a Changes master a b c d e f hello Dr. Balázs Simon, BME, IIT 24

25 Branching examples After some other changes and commits (even the master branch can evolve): master a b c d e i f g h hello After we are finished with the hello feature, we can merge it to the master branch: git checkout master git merge hello master a b c d e i j f g h hello Dr. Balázs Simon, BME, IIT 25

26 Branching examples From the previous slide: master a b c d e i j f g h hello We can delete the hello branch if we don t need it anymore. Its commits are available from the master branch: git branch -d hello master a b c d e i j f g h Dr. Balázs Simon, BME, IIT 26

27 Fast-forward merge Sometimes one of the branches does not evolve: this is common when the other branch is short-lived Initial state: master a b c d e After the following commands: git branch hello git checkout hello master a b c d e hello After some changes and the following command: git commit -a Changes master a b c d e f Now there is no actual merge needed, the master branch can be fast-forwarded to revision h. g h hello Dr. Balázs Simon, BME, IIT 27

28 Fast-forward merge From the previous slide: a b c d master e Now there is no actual merge needed, the master branch can be fast-forwarded to revision h. f g h hello After merging (fast-forward): git checkout master git merge hello git branch -d hello master a b c d e f g h There cannot be any merge conflicts on fast-forward! Dr. Balázs Simon, BME, IIT 28

29 Rebase Initial state: master a b c d e i f g h hello Rebase: git checkout hello git rebase master master a b c d e i Rebase rewrites the project history with brand new commits! Results in a cleaner project history, but we lose safety and traceability. f* g* h* hello Be careful: never rebase public branches (e.g. master) on top of your private branch! It changes the history of the public branch, and other developers will be confused. Dr. Balázs Simon, BME, IIT 29

30 Reset on commits Reset can be used on commits git reset <commit-checksum> moves the tip of the branch to another commit can be used to remove commits Be very careful with this! Use it only to undo changes that haven t been shared with anyone else! master a b c d e Reset: git reset d a b c master d e dangling commit, will be garbage collected by Git Dr. Balázs Simon, BME, IIT 30

31 Reset on files Used to undo files in the working directory and to undo staging (index) Hard reset: git reset --hard HEAD moves HEAD, resets working directory and index all your work is lost since the last commit Mixed reset (default): git reset --mixed HEAD git reset HEAD moves HEAD, resets the index, but not the working directory your work is not lost, but will not be committed Soft reset (rarely used): git reset --soft HEAD moves HEAD, doesn t change the index or working directory use this when you want to move to another commit and patch things up without losing your place If you use a specific <filename> instead of HEAD, it will reset only that file Dr. Balázs Simon, BME, IIT 31

32 Tags Tags are used to mark specific points (commits) in the project history e.g. release points (v1.0, etc.) Listing tags: git tag Lightweight tag (just a marker): git tag <tag-name> Annotated tag (more info, like a branch that does not change): git tag -a <tag-name> -m <message> Tagging an earlier commit: git tag -a <tag-name> <commit-checksum> Tags are not pushed automatically. Pushing them explicitly: git push <remote> --tags Dr. Balázs Simon, BME, IIT 32

33 Stash Often you are in the middle of something, the work is in a half-done state You need to switch to another branch for a bit to work on something else But you don t want to commit half-done work Stash can save the current state of a dirty working directory and the index: git stash After you are done and want to restore: git stash pop List current stashes: git stash list Apply a specific stash: git stash apply <stash-id> git stash apply <stash-id> --index Drop a stash: git stash drop <stash-id> Dr. Balázs Simon, BME, IIT 33

34 Pull request Used in public collaboration, e.g. GitHub you fork someone else s repository to develop a new feature in your own repository when you are ready with the feature, you notify the original developer with a pull request so that he can include (pull) your changes to his own repository Once a pull request is opened, you can discuss and review the potential changes with collaborators and add followup commits before the changes are merged into the repository Dr. Balázs Simon, BME, IIT 34

35 Best practices for using Git Dr. Balázs Simon, BME, IIT 35

36 Git best practices Do: commit related changes commit often write useful commit messages test before you commit use branches agree on a workflow Don t: commit unrelated changes e.g. fixing two bugs at once use Git as a backup system don t commit half-done work that does not compile commits should be semantically meaningful change published history e.g. rebase a public branch Dr. Balázs Simon, BME, IIT 36

37 Git branching model Vincent Driessen: (or this can be the master) (and this can be the release) Dr. Balázs Simon, BME, IIT 37

38 Git branching model Dr. Balázs Simon, BME, IIT 38

39 Git branching model Dr. Balázs Simon, BME, IIT 39

Using Git for Project Management with µvision

Using Git for Project Management with µvision MDK Version 5 Tutorial AN279, Spring 2015, V 1.0 Abstract Teamwork is the basis of many modern microcontroller development projects. Often teams are distributed all over the world and over various time

More information

Version control with GIT

Version control with GIT AGV, IIT Kharagpur September 13, 2012 Outline 1 Version control system What is version control Why version control 2 Introducing GIT What is GIT? 3 Using GIT Using GIT for AGV at IIT KGP Help and Tips

More information

Introduction to Git. Markus Kötter koetter@rrzn.uni-hannover.de. Notes. Leinelab Workshop July 28, 2015

Introduction to Git. Markus Kötter koetter@rrzn.uni-hannover.de. Notes. Leinelab Workshop July 28, 2015 Introduction to Git Markus Kötter koetter@rrzn.uni-hannover.de Leinelab Workshop July 28, 2015 Motivation - Why use version control? Versions in file names: does this look familiar? $ ls file file.2 file.

More information

Version Control Systems (Part 2)

Version Control Systems (Part 2) i i Systems and Internet Infrastructure Security Institute for Networking and Security Research Department of Computer Science and Engineering Pennsylvania State University, University Park, PA Version

More information

Version Control using Git and Github. Joseph Rivera

Version Control using Git and Github. Joseph Rivera Version Control using Git and Github Joseph Rivera 1 What is Version Control? Powerful development tool! Management of additions, deletions, and modifications to software/source code or more generally

More information

MATLAB & Git Versioning: The Very Basics

MATLAB & Git Versioning: The Very Basics 1 MATLAB & Git Versioning: The Very Basics basic guide for using git (command line) in the development of MATLAB code (windows) The information for this small guide was taken from the following websites:

More information

Version Control with Git. Dylan Nugent

Version Control with Git. Dylan Nugent Version Control with Git Dylan Nugent Agenda What is Version Control? (and why use it?) What is Git? (And why Git?) How Git Works (in theory) Setting up Git (surviving the CLI) The basics of Git (Just

More information

Version Control with Git. Linux Users Group UT Arlington. Rohit Rawat rohitrawat@gmail.com

Version Control with Git. Linux Users Group UT Arlington. Rohit Rawat rohitrawat@gmail.com Version Control with Git Linux Users Group UT Arlington Rohit Rawat rohitrawat@gmail.com Need for Version Control Better than manually storing backups of older versions Easier to keep everyone updated

More information

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

Version Control with Svn, Git and git-svn. Kate Hedstrom ARSC, UAF 1 Version Control with Svn, Git and git-svn Kate Hedstrom ARSC, UAF 2 Version Control Software System for managing source files For groups of people working on the same code When you need to get back last

More information

Version Control with Git. Kate Hedstrom ARSC, UAF

Version Control with Git. Kate Hedstrom ARSC, UAF 1 Version Control with Git Kate Hedstrom ARSC, UAF Linus Torvalds 3 Version Control Software System for managing source files For groups of people working on the same code When you need to get back last

More information

Git Basics. Christopher Simpkins chris.simpkins@gatech.edu. Chris Simpkins (Georgia Tech) CS 2340 Objects and Design CS 1331 1 / 22

Git Basics. Christopher Simpkins chris.simpkins@gatech.edu. Chris Simpkins (Georgia Tech) CS 2340 Objects and Design CS 1331 1 / 22 Git Basics Christopher Simpkins chris.simpkins@gatech.edu Chris Simpkins (Georgia Tech) CS 2340 Objects and Design CS 1331 1 / 22 Version Control Systems Records changes to files over time Allows you to

More information

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

CPSC 491. Today: Source code control. Source Code (Version) Control. Exercise: g., no git, subversion, cvs, etc.) Today: Source code control CPSC 491 Source Code (Version) Control Exercise: 1. Pretend like you don t have a version control system (e. g., no git, subversion, cvs, etc.) 2. How would you manage your source

More information

Version Control! Scenarios, Working with Git!

Version Control! Scenarios, Working with Git! Version Control! Scenarios, Working with Git!! Scenario 1! You finished the assignment at home! VC 2 Scenario 1b! You finished the assignment at home! You get to York to submit and realize you did not

More information

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

Introduc)on to Version Control with Git. Pradeep Sivakumar, PhD Sr. Computa5onal Specialist Research Compu5ng, NUIT Introduc)on to Version Control with Git Pradeep Sivakumar, PhD Sr. Computa5onal Specialist Research Compu5ng, NUIT Contents 1. What is Version Control? 2. Why use Version control? 3. What is Git? 4. Create

More information

FEEG6002 - Applied Programming 3 - Version Control and Git II

FEEG6002 - Applied Programming 3 - Version Control and Git II FEEG6002 - Applied Programming 3 - Version Control and Git II Sam Sinayoko 2015-10-16 1 / 26 Outline Learning outcomes Working with a single repository (review) Working with multiple versions of a repository

More information

Introduction to Version Control with Git

Introduction to Version Control with Git Introduction to Version Control with Git Dark Cosmology Centre Niels Bohr Institute License All images adapted from Pro Git by Scott Chacon and released under license Creative Commons BY-NC-SA 3.0. See

More information

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

Annoyances with our current source control Can it get more comfortable? Git Appendix. Git vs Subversion. Andrey Kotlarski 13.XII. Git vs Subversion Andrey Kotlarski 13.XII.2011 Outline Annoyances with our current source control Can it get more comfortable? Git Appendix Rant Network traffic Hopefully we have good repository backup

More information

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

Version control. with git and GitHub. Karl Broman. Biostatistics & Medical Informatics, UW Madison Version control with git and GitHub Karl Broman Biostatistics & Medical Informatics, UW Madison kbroman.org github.com/kbroman @kwbroman Course web: kbroman.org/tools4rr Slides prepared with Sam Younkin

More information

Gitflow process. Adapt Learning: Gitflow process. Document control

Gitflow process. Adapt Learning: Gitflow process. Document control Adapt Learning: Gitflow process Document control Abstract: Presents Totara Social s design goals to ensure subsequent design and development meets the needs of end- users. Author: Fabien O Carroll, Sven

More information

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

Git Basics. Christian Hanser. Institute for Applied Information Processing and Communications Graz University of Technology. 6. Git Basics Christian Hanser Institute for Applied Information Processing and Communications Graz University of Technology 6. March 2013 Christian Hanser 6. March 2013 Seite 1/39 Outline Learning Targets

More information

Version Control with. Ben Morgan

Version Control with. Ben Morgan Version Control with Ben Morgan Developer Workflow Log what we did: Add foo support Edit Sources Add Files Compile and Test Logbook ======= 1. Initial version Logbook ======= 1. Initial version 2. Remove

More information

MOOSE-Based Application Development on GitLab

MOOSE-Based Application Development on GitLab MOOSE-Based Application Development on GitLab MOOSE Team Idaho National Laboratory September 9, 2014 Introduction The intended audience for this talk is developers of INL-hosted, MOOSE-based applications.

More information

Introduction to Version Control

Introduction to Version Control Research Institute for Symbolic Computation Johannes Kepler University Linz, Austria Winter semester 2014 Outline General Remarks about Version Control 1 General Remarks about Version Control 2 Outline

More information

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

Lab Exercise Part II: Git: A distributed version control system Lunds tekniska högskola Datavetenskap, Nov 25, 2013 EDA260 Programvaruutveckling i grupp projekt Labb 2 (part II: Git): Labbhandledning Checked on Git versions: 1.8.1.2 Lab Exercise Part II: Git: A distributed

More information

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.

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. Version control Version control is a powerful tool for many kinds of work done over a period of time, including writing papers and theses as well as writing code. This session gives a introduction to a

More information

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

Using Git for Centralized and Distributed Version Control Workflows - Day 3. 1 April, 2016 Presenter: Brian Vanderwende Using Git for Centralized and Distributed Version Control Workflows - Day 3 1 April, 2016 Presenter: Brian Vanderwende Git jargon from last time... Commit - a project snapshot in a repository Staging area

More information

Version Control with Git

Version Control with Git 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

More information

Version control systems. Lecture 2

Version control systems. Lecture 2 Version control systems Lecture 2 VCS Many people s version- control method of choice is to copy files into another directory (e.g. a @me- stamped directory). But this approach is error prone. Easy to

More information

Source Control Systems

Source Control Systems Source Control Systems SVN, Git, GitHub SoftUni Team Technical Trainers Software University http://softuni.bg Table of Contents 1. Software Configuration Management (SCM) 2. Version Control Systems: Philosophy

More information

About the Tutorial. Audience. Prerequisites. Copyright & Disclaimer GIT

About the Tutorial. Audience. Prerequisites. Copyright & Disclaimer GIT i About the Tutorial 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.

More information

Two Best Practices for Scientific Computing

Two Best Practices for Scientific Computing Two Best Practices for Scientific Computing Version Control Systems & Automated Code Testing David Love Software Interest Group University of Arizona February 18, 2013 How This Talk Happened Applied alumnus,

More information

MATLAB @ Work. MATLAB Source Control Using Git

MATLAB @ Work. MATLAB Source Control Using Git MATLAB @ Work MATLAB Source Control Using Git Richard Johnson Using source control is a key practice for professional programmers. If you have ever broken a program with a lot of editing changes, you can

More information

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

Git. A Distributed Version Control System. Carlos García Campos carlosgc@gsyc.es Git A Distributed Version Control System Carlos García Campos carlosgc@gsyc.es Carlos García Campos carlosgc@gsyc.es - Git 1 A couple of Quotes For the first 10 years of kernel maintenance, we literally

More information

Version Control Systems

Version Control Systems Version Control Systems ESA 2015/2016 Adam Belloum a.s.z.belloum@uva.nl Material Prepared by Eelco Schatborn Today IntroducGon to Version Control Systems Centralized Version Control Systems RCS CVS SVN

More information

Introducing Xcode Source Control

Introducing Xcode Source Control APPENDIX A Introducing Xcode Source Control What You ll Learn in This Appendix: u The source control features offered in Xcode u The language of source control systems u How to connect to remote Subversion

More information

Version Control. Version Control

Version Control. Version Control Version Control CS440 Introduction to Software Engineering 2013, 2015 John Bell Based on slides prepared by Jason Leigh for CS 340 University of Illinois at Chicago Version Control Incredibly important

More information

Mercurial. Why version control (Single users)

Mercurial. Why version control (Single users) Mercurial Author: Hans Fangohr Date: 2008-05-21 Version: 033c85b22987 Id: talk.txt,v 033c85b22987 2008/05/21 08:42:42 fangohr Series: SESA2006 2008, last lecture Hint Adjust font-size

More information

Introduction to the Git Version Control System

Introduction to the Git Version Control System Introduction to the Sebastian Rockel rockel@informatik.uni-hamburg.de University of Hamburg Faculty of Mathematics, Informatics and Natural Sciences Department of Informatics Technical Aspects of Multimodal

More information

Introduction to Version Control with Git

Introduction to Version Control with Git Introduction to Version Control with Git Dark Cosmology Centre Niels Bohr Institute License Most images adapted from Pro Git by Scott Chacon and released under license Creative Commons BY-NC-SA 3.0. See

More information

Version Control for Computational Economists: An Introduction

Version Control for Computational Economists: An Introduction Version Control for Computational Economists: An Introduction Jake C. Torcasso April 3, 2014 Starting Point A collection of files on your computer Changes to files and new files over time Interested in

More information

Git, GitHub & Web Hosting Workshop

Git, GitHub & Web Hosting Workshop Git, GitHub & Web Hosting Workshop WTM Hamburg Git, GitHub & Web Hosting Documentation During our Workshops we re going to develop parts of our WTM Hamburg Website together. At this point, we ll continue

More information

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

Version Control Systems: SVN and GIT. How do VCS support SW development teams? Version Control Systems: SVN and GIT How do VCS support SW development teams? CS 435/535 The College of William and Mary Agile manifesto We are uncovering better ways of developing software by doing it

More information

Distributed Version Control with Mercurial and git

Distributed Version Control with Mercurial and git OpenStax-CNX module: m37404 1 Distributed Version Control with Mercurial and git Hannes Hirzel This work is produced by OpenStax-CNX and licensed under the Creative Commons Attribution License 3.0 Abstract

More information

Version Uncontrolled! : How to Manage Your Version Control

Version Uncontrolled! : How to Manage Your Version Control Version Uncontrolled! : How to Manage Your Version Control Harold Dost III, Raastech ABSTRACT Are you constantly wondering what is in your production environment? Do you have any doubts about what code

More information

PKI, Git and SVN. Adam Young. Presented by. Senior Software Engineer, Red Hat. License Licensed under http://creativecommons.org/licenses/by/3.

PKI, Git and SVN. Adam Young. Presented by. Senior Software Engineer, Red Hat. License Licensed under http://creativecommons.org/licenses/by/3. PKI, Git and SVN Presented by Adam Young Senior Software Engineer, Red Hat License Licensed under http://creativecommons.org/licenses/by/3.0/ Agenda Why git Getting started Branches Commits Why? Saved

More information

Version Control Tutorial using TortoiseSVN and. TortoiseGit

Version Control Tutorial using TortoiseSVN and. TortoiseGit Version Control Tutorial using TortoiseSVN and TortoiseGit Christopher J. Roy, Associate Professor Virginia Tech, cjroy@vt.edu This tutorial can be found at: www.aoe.vt.edu/people/webpages/cjroy/software-resources/tortoise-svn-git-tutorial.pdf

More information

An Introduction to Git Version Control for SAS Programmers

An Introduction to Git Version Control for SAS Programmers ABSTRACT An Introduction to Git Version Control for SAS Programmers Stephen Philp, Pelican Programming, Redondo Beach, CA Traditionally version control has been in the domain of the enterprise: either

More information

SVN Starter s Guide Compiled by Pearl Guterman June 2005

SVN Starter s Guide Compiled by Pearl Guterman June 2005 SVN Starter s Guide Compiled by Pearl Guterman June 2005 SV Table of Contents 1) What is SVN?... 1 2) SVN Architecture... 2 3) Creating a Working Copy... 3 4) Basic Work Cycle... 4 5) Status Symbols...

More information

Version Control. Luka Milovanov lmilovan@abo.fi

Version Control. Luka Milovanov lmilovan@abo.fi Version Control Luka Milovanov lmilovan@abo.fi Configuration Management Configuration management is the management of system change to software products Version management: consistent scheme of version

More information

Version Control with Git

Version Control with Git Version Control with Git Claudius Coenen License: CC-BY-4.0 What We're Not Talking About Conceived by Linus Torvalds around 2005 Distributed Version Control vs. Central Version Control Why git is better

More information

UNIVERSITY OF CALIFORNIA Department of Electrical Engineering and Computer Sciences Computer Science Division. P. N. Hilfinger

UNIVERSITY OF CALIFORNIA Department of Electrical Engineering and Computer Sciences Computer Science Division. P. N. Hilfinger UNIVERSITY OF CALIFORNIA Department of Electrical Engineering and Computer Sciences Computer Science Division CS 61B Fall 2012 P. N. Hilfinger Version Control and Homework Submission 1 Introduction Your

More information

Flumes Short User Guide to Subversion

Flumes Short User Guide to Subversion Flumes Short User Guide to Subversion Peter Nordin January 7, 2014 This guide is primarily meant as an introduction to Subversion for users of the svn accounts administered by the Division of Fluid and

More information

Data management on HPC platforms

Data management on HPC platforms Data management on HPC platforms Transferring data and handling code with Git scitas.epfl.ch September 10, 2015 http://bit.ly/1jkghz4 What kind of data Categorizing data to define a strategy Based on size?

More information

Version Control Using Subversion. Version Control Using Subversion 1 / 27

Version Control Using Subversion. Version Control Using Subversion 1 / 27 Version Control Using Subversion Version Control Using Subversion 1 / 27 What Is Version Control? Version control is also known as revision control. Version control is provided by a version control system

More information

Software Configuration Management and Continuous Integration

Software Configuration Management and Continuous Integration 1 Chapter 1 Software Configuration Management and Continuous Integration Matthias Molitor, 1856389 Reaching and maintaining a high quality level is essential for each today s software project. To accomplish

More information

CS 2112 Lab: Version Control

CS 2112 Lab: Version Control 29 September 1 October, 2014 Version Control What is Version Control? You re emailing your project back and forth with your partner. An hour before the deadline, you and your partner both find different

More information

Advanced Computing Tools for Applied Research Chapter 4. Version control

Advanced Computing Tools for Applied Research Chapter 4. Version control Advanced Computing Tools for Applied Research Jaime Boal Martín-Larrauri Rafael Palacios Hielscher Academic year 2014/2015 1 Version control fundamentals 2 What you probably do now Manually save copies

More information

Revision control systems (RCS) and

Revision control systems (RCS) and Revision control systems (RCS) and Subversion Problem area Software projects with multiple developers need to coordinate and synchronize the source code Approaches to version control Work on same computer

More information

Git in control of your Change Management

Git in control of your Change Management Synopsis Git in control of your Change Management Git is a free Version Control System. It is designed for use by software developers, and quite popular for that purpose. The essence of Version Control

More information

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

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

More information

Subversion Integration for Visual Studio

Subversion Integration for Visual Studio Subversion Integration for Visual Studio VisualSVN Team VisualSVN: Subversion Integration for Visual Studio VisualSVN Team Copyright 2005-2008 VisualSVN Team Windows is a registered trademark of Microsoft

More information

Using Subversion in Computer Science

Using Subversion in Computer Science School of Computer Science 1 Using Subversion in Computer Science Last modified July 28, 2006 Starting from semester two, the School is adopting the increasingly popular SVN system for management of student

More information

Git - Working with Remote Repositories

Git - Working with Remote Repositories Git - Working with Remote Repositories Handout New Concepts Working with remote Git repositories including setting up remote repositories, cloning remote repositories, and keeping local repositories in-sync

More information

Version control tracks multiple versions. Configuration Management. Version Control. V22.0474-001 Software Engineering Lecture 12, Spring 2008

Version control tracks multiple versions. Configuration Management. Version Control. V22.0474-001 Software Engineering Lecture 12, Spring 2008 Configuration Management Version Control V22.0474-001 Software Engineering Lecture 12, Spring 2008 Clark Barrett, New York University Configuration Management refers to a set of procedures for managing

More information

Introduction to Source Control ---

Introduction to Source Control --- Introduction to Source Control --- Overview Whether your software project is large or small, it is highly recommended that you use source control as early as possible in the lifecycle of your project.

More information

Introduction to Subversion

Introduction to Subversion Introduction to Subversion Getting started with svn Matteo Vescovi 19/02/2010 Agenda A little bit of theory Overview of Subversion Subversion approach to Version Control Using Subversion Typical subversion

More information

CVS versus BitKeeper A Comparison

CVS versus BitKeeper A Comparison Chapter 11 CVS versus BitKeeper A Comparison Since the publication of the second edition of this book, a powerful new versioning system has risen called Bitkeeper, or BK/PRO, to dominate at least certain

More information

Source Control Guide: Git

Source Control Guide: Git MadCap Software Source Control Guide: Git Flare 11.1 Copyright 2015 MadCap Software. All rights reserved. Information in this document is subject to change without notice. The software described in this

More information

1. History 2. Structure 3. Git Comparison 4. File Storage 5. File Tracking 6. Staging 7. Queues (MQ) 8. Merge Tools 9. Interfaces

1. History 2. Structure 3. Git Comparison 4. File Storage 5. File Tracking 6. Staging 7. Queues (MQ) 8. Merge Tools 9. Interfaces 1 Hg 1. History 2. Structure 3. Git Comparison 4. File Storage 5. File Tracking 6. Staging 7. Queues (MQ) 8. Merge Tools 9. Interfaces 2 Mercurial / Git History Bitmover's BitKeeper Proprietary distributed

More information

Working with Versioning. SharePoint Services

Working with Versioning. SharePoint Services in SharePoint Services Table of Contents INTRODUCTION TO VERSIONING... 1 ABOUT ENABLING AND CONFIGURING VERSIONS FOR A LIST OR LIBRARY... 2 ABOUT MANAGING MAJOR AND MINOR VERSIONS... 2 OTHER SETTINGS THAT

More information

Version Control with Subversion

Version Control with Subversion Version Control with Subversion Introduction Wouldn t you like to have a time machine? Software developers already have one! it is called version control Version control (aka Revision Control System or

More information

Distributed Version Control

Distributed Version Control Distributed Version Control Faisal Tameesh April 3 rd, 2015 Executive Summary Version control is a cornerstone of modern software development. As opposed to the centralized, client-server architecture

More information

Palantir.net presents Git

Palantir.net presents Git Palantir.net presents Git Branching, Merging, Commits, and Tagging: Basics and Best Practices Git Started This assumes you already have a repo. Instructions for that are already on Github. Branching BRANCHING

More information

Using GitHub for Rally Apps (Mac Version)

Using GitHub for Rally Apps (Mac Version) Using GitHub for Rally Apps (Mac Version) SOURCE DOCUMENT (must have a rallydev.com email address to access and edit) Introduction Rally has a working relationship with GitHub to enable customer collaboration

More information

Surround SCM Best Practices

Surround SCM Best Practices Surround SCM Best Practices This document addresses some of the common activities in Surround SCM and offers best practices for each. These best practices are designed with Surround SCM users in mind,

More information

Version Control with Mercurial and SSH

Version Control with Mercurial and SSH Version Control with Mercurial and SSH Lasse Kliemann lki@informatik.uni-kiel.de Vorkurs Informatik 2010 Wishlist While working on a project, it is nice to... be able to switch back to older versions of

More information

An Introduction to Mercurial Version Control Software

An Introduction to Mercurial Version Control Software An Introduction to Mercurial Version Control Software CS595, IIT [Doc Updated by H. Zhang] Oct, 2010 Satish Balay balay@mcs.anl.gov Outline Why use version control? Simple example of revisioning Mercurial

More information

Version Control with Subversion and Xcode

Version Control with Subversion and Xcode Version Control with Subversion and Xcode Author: Mark Szymczyk Last Update: June 21, 2006 This article shows you how to place your source code files under version control using Subversion and Xcode. By

More information

Source code management systems

Source code management systems Source code management systems SVN, Git, Mercurial, Bazaar,... for managing large projects with multiple people work locally or across a network store and retrieve all versions of all directories and files

More information

CSCB07 Software Design Version Control

CSCB07 Software Design Version Control CSCB07 Software Design Version Control Anya Tafliovich Fall 2015 Problem I: Working Solo How do you keep track of changes to your program? Option 1: Don t bother Hope you get it right the first time Hope

More information

Using SVN to Manage Source RTL

Using SVN to Manage Source RTL Using SVN to Manage Source RTL CS250 Tutorial 1 (Version 083010a) August 30, 2010 Yunsup Lee In this tutorial you will gain experience using the Subversion (SVN) to manage your source RTL and code. You

More information

USERS MANUAL FOR OWL A DOCUMENT REPOSITORY SYSTEM

USERS MANUAL FOR OWL A DOCUMENT REPOSITORY SYSTEM USERS MANUAL FOR OWL A DOCUMENT REPOSITORY SYSTEM User Manual Table of Contents Introducing OWL...3 Starting to use Owl...4 The Logging in page...4 Using the browser...6 Folder structure...6 Title Bar...6

More information

Continuous Integration. CSC 440: Software Engineering Slide #1

Continuous Integration. CSC 440: Software Engineering Slide #1 Continuous Integration CSC 440: Software Engineering Slide #1 Topics 1. Continuous integration 2. Configuration management 3. Types of version control 1. None 2. Lock-Modify-Unlock 3. Copy-Modify-Merge

More information

Working Copy 1.4 users manual

Working Copy 1.4 users manual Working Copy 1.4 users manual Introduction 3 Cloning repositories 3 Accessing files 3 Committing changes 4 Staying up-to-date 4 Remotes 5 Clone catalog 5 SSH keys 6 Viewing and editing files 6 File changes

More information

Xcode Source Management Guide. (Legacy)

Xcode Source Management Guide. (Legacy) Xcode Source Management Guide (Legacy) Contents Introduction 5 Organization of This Document 5 See Also 6 Source Management Overview 7 Source Control Essentials 7 Snapshots 8 Managing Source in Xcode 8

More information

Week G Versioning with svn

Week G Versioning with svn Week G Versioning with svn What is Versioning? Naïve vs. smart approaches Subversion (svn) workflow Basic svn commands http://subversion.tigris.org/ Assignments: Check in your proposals Week G Versioning

More information

Source Code Management/Version Control

Source Code Management/Version Control Date: 3 rd March 2005 Source Code Management/Version Control The Problem: In a typical software development environment, many developers will be engaged in work on one code base. If everyone was to be

More information

Git Branching for Continuous Delivery

Git Branching for Continuous Delivery Git Branching for Continuous Delivery Sarah Goff-Dupont Automation Enthusiast Hello everyone I ll be talking about how teams at Atlassian use Git branches for continuous delivery. My name is Sarah, and

More information

Unity Version Control

Unity Version Control Unity Version Control with BitBucket.org and SourceTree BLACKISH - last updated: April 2013 http://blog.blackish.at http://blackish-games.com! Table of Contents Setup! 3 Join an existing repository! 4

More information

Jazz Source Control Best Practices

Jazz Source Control Best Practices Jazz Source Control Best Practices Shashikant Padur RTC SCM Developer Jazz Source Control Mantra The fine print Fast, easy, and a few concepts to support many flexible workflows Give all users access to

More information

The Bazaar Version Control System. Michael Hudson, Canonical Ltd michael.hudson@canonical.com

The Bazaar Version Control System. Michael Hudson, Canonical Ltd michael.hudson@canonical.com The Bazaar Version Control System Michael Hudson, Canonical Ltd michael.hudson@canonical.com What is Bazaar? Bazaar is a Distributed Version Control System (DVCS) You probably know what a VCS is by now:

More information

Configura)on Management

Configura)on Management Configura)on Management Leonardo Mariani University of Milano Bicocca mariani@disco.unimib.it Configuration Management Program EVOLUTION Program CM is concerned with managing evolving software systems:

More information

What is Subversion? Revision Control System made to replace CVS

What is Subversion? Revision Control System made to replace CVS SubVersioN the new Central Service at DESY by Marian Gawron What is Subversion? Revision Control System made to replace CVS SVN Basics Client Options Svnserve Command line client Different GUIs for Windows,

More information

Putting It All Together. Vagrant Drush Version Control

Putting It All Together. Vagrant Drush Version Control Putting It All Together Vagrant Drush Version Control Vagrant Most Drupal developers now work on OSX. The Vagarant provisioning scripts may not work on Windows without subtle changes. If supplied, read

More information

Frequently Asked Questions

Frequently Asked Questions Frequently Asked Questions Share Drive Frequently Asked Questions Table of Contents How do I change my password?... How do I reset my password if I forgot it?... How do I share files/folders with Groups

More information

Pro Git. Scott Chacon * 2010-08-02

Pro Git. Scott Chacon * 2010-08-02 Pro Git Scott Chacon * 2010-08-02 * This is the PDF file for the Pro Git book contents. It is licensed under the Creative Commons Attribution-Non Commercial-Share Alike 3.0 license. I hope you enjoy it,

More information

Zero-Touch Drupal Deployment

Zero-Touch Drupal Deployment Zero-Touch Drupal Deployment Whitepaper Date 25th October 2011 Document Number MIG5-WP-D-004 Revision 01 1 Table of Contents Preamble The concept Version control Consistency breeds abstraction Automation

More information

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

Subversion. Nadir SOUALEM. Linux Users subversion client svn 1.6.5 or higher. Windows users subversion client Tortoise 1.6. Subversion Nadir SOUALEM 1 Requirements Linux Users subversion client svn 1.6.5 or higher Windows users subversion client Tortoise 1.6.6 or higher 2 What is Subversion? Source control or version control

More information

Workflow Templates Library

Workflow Templates Library Workflow s Library Table of Contents Intro... 2 Active Directory... 3 Application... 5 Cisco... 7 Database... 8 Excel Automation... 9 Files and Folders... 10 FTP Tasks... 13 Incident Management... 14 Security

More information

Table of Contents. OpenDrive Drive 2. Installation 4 Standard Installation Unattended Installation

Table of Contents. OpenDrive Drive 2. Installation 4 Standard Installation Unattended Installation User Guide for OpenDrive Application v1.6.0.4 for MS Windows Platform 20150430 April 2015 Table of Contents Installation 4 Standard Installation Unattended Installation Installation (cont.) 5 Unattended

More information