Software Development. Using GIT. Pr. Olivier Gruber. Laboratoire d'informatique de Grenoble Université de Grenoble-Alpes
|
|
- Loren Goodwin
- 5 years ago
- Views:
Transcription
1 Software Development 1 Using GIT Pr. Olivier Gruber olivier.gruber@imag.fr Laboratoire d'informatique de Grenoble Université de Grenoble-Alpes
2 Overview 2 What is GIT Keeping histories of the evolution of files and directories The ability to merge histories, working alone or in a team Personal usage Protect and evolve your code Look at the past Team work Dividing work and be able to merge later Flexible cooperation
3 Real-life Scenarii 3 Personal usage examples Last minute, last change It started as a simple change, really Hum, what if... Team work examples Which USB key as the last version already? Trust me, I tested my changes... What? Fix you a bug now! Can t, in the middle of something Hey guys, sorry, but my machine died on me...
4 GIT concepts 4 GIT History A saga of transactions Tracks changes to a directory (its files and subdirectories) A transaction: do some work, then commit or abort init Git repo successive work sessions Work: create or delete directories create or delete files modify files c1 c2 c3 c4 commits Keep or toss your work
5 GIT concepts 5 GIT Repository A repository manages one tree of directories and files Git tracks the history of certain files and directories $ mkdir MyProject $ cd MyProject $ git init Initialized empty Git repository in../myproject/.git/ $ Git internal files Keeps previous versions of the tracked files MyProject ----.git ---- bin --- foo.o --- bar.o ---- src --- foo.c --- bar.c ---- Makefile ---- ToDo untracked files... tracked files...
6 GIT concepts 6 GIT Repository A repository manages one tree of directories and files Git tracks the history of certain files and directories MyProject ----.git ----.gitignore ---- bin --- foo.o --- bar.o ---- src --- foo.c --- bar.c ---- Makefile ---- ToDo give patterns to ignore Want to know more? $ man gitignore
7 GIT concepts 7 GIT Status Git tracks the history of certain files and directories Each file has a status untracked, tracked, modified MyProject ----.git ----.gitignore ---- bin --- foo.o --- bar.o ---- src --- foo.c --- bar.c --- main.c ---- Makefile ---- ToDo tracked, unmodified untracked (new file) tracked, but modified status
8 GIT concepts 8 GIT Status Git tracks the history of certain files and directories Each file has a status untracked, tracked, modified, indexed MyProject ----.git ----.gitignore ---- bin --- foo.o --- bar.o ---- src --- foo.c --- bar.c --- main.c ---- Makefile ---- ToDo Added to the index.. The index list all the files that are part of the current transaction
9 GIT concepts 9 GIT Status Git tracks the history of certain files and directories Each file has a status untracked, tracked, modified, indexed Commit: save changes for all the files in the index MyProject ----.git ----.gitignore ---- bin --- foo.o --- bar.o ---- src --- foo.c --- bar.c --- main.c ---- Makefile ---- ToDo After the commit, these are now tracked and unmodified
10 GIT concepts Recap 10 Four commands Git-init Create a repository Git-status Give you the status of files Git-add Add files to the index Modified or untracked files Git-commit Want to know more? $ man git-init $ man git-status $ man git-add $ man git-commit Commit changes to indexed files
11 GIT concepts Recap 11 Four commands Git-init Create a repository Git-status Give you the status of files Git-add $ mkdir MyProject $ cd MyProject $ git init Initialized empty Git repository in../myproject/.git/ $ Add files to the index Modified or untracked files Git-commit Commit changes to indexed files
12 GIT concepts Recap 12 Four commands Git-init Create a repository Git-status Give you the status of files Git-add Add files to the index $... Add main.c Modify Makefile $ git status Modified: Makefile Untracked: main.c Modified or untracked files Git-commit Commit changes to indexed files
13 GIT concepts Recap 13 Four commands Git-init Create a repository Git-status Give you the status of files Git-add Add files to the index Modified or untracked files Git-commit Commit changes to indexed files $... Add main.c Modify Makefile $ git status Modified: Makefile Untracked: main.c $ git add all $ git status Makefile main.c
14 GIT concepts Recap 14 Four commands Git-init Create a repository Git-status Give you the status of files Git-add Add files to the index Modified or untracked files Git-commit Commit changes to indexed files $... Add main.c Modify Makefile $ git status Modified: Makefile Untracked: main.c $ git add all $ git status Makefile main.c $ git commit -m Added main.c $ git status nothing to commit, working directory clean $
15 GIT concepts Recap 15 File System View Developer View Index View Repo View MyProject ----.git ----.gitignore ---- bin --- foo.o --- bar.o ---- src --- foo.c --- bar.c --- main.c ---- Makefile ---- ToDo MyProject ---- bin --- foo.o --- bar.o ---- src --- foo.c --- bar.c --- main.c ---- Makefile ---- ToDo Modified: Makefile Modified: foo.c Untracked: main.c History of all commits And the previous versions of tracked files
16 Using GIT for Oneself 16 For what? Permits trials and errors Provides a safety net Nothing is free Git maintains a history, so it requires space on your disk It takes some practice to getting used it
17 Using GIT Safety Net 17 Local safety net Git maintains a copy of your work in the.git directory So if you corrupt or loose a file/directory, you can recover it As long as you do not delete or damage the contents of the.git directory Remote safety net This is a bit more advanced usage You could clone your repository on a remote machine, used as a backed-up machine Example You could use your account at the UFR Or use github Or use another machine at home
18 Using GIT Safety Net 18 Git-checkout: revert changes Revert uncommitted changes Restore the contents of modified files Restore removed or renamed files or directories $ git add all $ git commit -m Task2 done Project/ Task1 Task2 Task3 Working on Task3 Ouch: - f***ed up file Toto.java - removed Titi.java $ git checkout Toto.java $ git checkout Titi.java...Finish Task3 Project/.git init checkouts c1 c2 c3 commits $ git add all $ git commit -m Task3 done
19 Using GIT Safety Net 19 Git-checkout: revert changes Revert all uncommitted changes only in tracked files Be careful here, you need to be sure before you ask for this it cannot be undone...working on Task2 $ git add all $ git commit -m Task2 done...working on OK, let s toss all that non sense... $ git checkout -f Project/ Project/.git init Task1 Task2 Task3 X c1 c2 commits checkout
20 Using GIT Safety Net 20 Git-checkout: revert changes, back several commits Revert all uncommitted changes in tracked files Oh oh Task2 and Task3 were a mistake Let s scratch that work. Project/ Task1 Task2 Task3 Task2 X X $ git log commit 75c027 c2 commit 35c025 c1 Project/.git init c1 c2 revert c3 $ git revert --no-commit 35c025..HEAD commits...now do it right $ git add --all $ git commit -m Ouf You can do it this way, but using branches is much easier...
21 Using GIT Branches 21 GIT history Branch: fork and merge your work Yields a tree of commits, on various branches master c1 c2 c8 c10 c13 branch-a c3 c7 WARNING: this may become complex branch-b branch-c c5 c4 c6 c9 c12 ADVICE: keep it simple branch-d c11 X
22 Using GIT branches 22 Switching between branches Changes the contents of tracked files Leaves untracked files untouched git checkout master git branch Task4 git checkout master MyProject ---- src --- foo.c --- bar.c ---- Makefile ---- ToDo MyProject ---- src --- foo.c --- bar.c ---- Makefile ---- ToDo MyProject ---- src --- foo.c --- bar.c --- main.c ---- Makefile ---- ToDo.org Untracked
23 Using GIT branches 23 Switching between branches Changes the contents of tracked files Leaves untracked files untouched git checkout master git branch Task4 git checkout master MyProject ---- src --- foo.c --- bar.c ---- Makefile ---- ToDo MyProject ---- src --- foo.c --- bar.c ---- Makefile ---- ToDo MyProject ---- src --- foo.c --- bar.c --- main.c ---- Makefile ---- ToDo.org MyProject ---- src --- foo.c --- bar.c ---- Makefile ---- ToDo.org changed Untracked => unchanged
24 Using GIT branches 24 Switching between branches Changes the contents of tracked files Leaves untracked files untouched untracked object files... git checkout master git branch Task4 MyProject ---- bin --- foo.o --- bar.o ---- src --- foo.c --- bar.c ---- Makefile ---- ToDo MyProject ---- bin --- foo.o --- bar.o ---- src --- foo.c --- bar.c ---- Makefile ---- ToDo MyProject ---- bin --- foo.o --- bar.o ---- src --- foo.c --- bar.c --- main.c ---- Makefile ---- ToDo.org
25 Using GIT branches 25 Switching between branches Changes the contents of tracked files Leaves untracked files untouched untracked object files... git checkout master git branch Task4 git checkout master MyProject ---- bin --- foo.o --- bar.o ---- src --- foo.c --- bar.c ---- Makefile ---- ToDo MyProject ---- bin --- foo.o --- bar.o ---- src --- foo.c --- bar.c ---- Makefile ---- ToDo MyProject ---- bin --- foo.o --- bar.o ---- src --- foo.c --- bar.c --- main.c ---- Makefile ---- ToDo.org
26 Using GIT branches 26 Switching between branches Changes the contents of tracked files Leaves untracked files untouched untracked object files... checkout make clean git checkout master git branch Task4 git checkout master MyProject ---- bin --- foo.o --- bar.o ---- src --- foo.c --- bar.c ---- Makefile ---- ToDo MyProject ---- bin --- foo.o --- bar.o ---- src --- foo.c --- bar.c ---- Makefile ---- ToDo MyProject ---- bin --- foo.o --- bar.o ---- src --- foo.c --- bar.c --- main.c ---- Makefile ---- ToDo.org MyProject ---- bin --- foo.o --- bar.o ---- src --- foo.c --- bar.c ---- Makefile ---- ToDo.org changed
27 Using GIT branches 27 The simplest pattern Create a branch, merge it branch merge merge Delete the branch if no longer needed master $ git branch bug-fix $ git checkout bug-fix work on fixing the bug 1 bug-fix 2 3 X 2 $ git add all $ git commit -m Bug fixed commit delete 3 $ git checkout master Come back on the branch master 4 5 $ git merge bug-fix Merge the branch bug-fix into master No conflicts, if master is never worked on $ git add all $ git commit -m Bug fixed merged $ git branch -d bug-fix Optional delete of the branch
28 Using GIT branches 28 The simplest pattern A great safety net Create a branch, do some work branch Toss your work at any time... master 1 $ git checkout -b risky-try 1 3 work on trying something risky risky-try X 2 $ git add all $ git commit -m First commit commit 2 delete... If you do not like it at some point 3 $ git checkout master Come back on the branch master $ git branch -d risky-try Optional delete of the branch
29 Using GIT branches 29 What if your already started to work Then you realize this is going to be risky stuff No problem! (but avoid this situation nevertheless) started working stash & branch started working on something you are growing concerned just too risky master $ git stash $ git checkout -b risky-try $ git stash apply keep working Then comit or toss... risky-try commit or toss
30 Using GIT branches 30 Merge conflicts the hot-fix syndrome You are working on a new feature hoping for a few days of quiet dev-time Of course, a bug is found in your committed code a hot-fix is necessary When done with the hot-fix, you commit and merge onto master Going to you new new feature When done, can you merge to master? Hot-fix: merge and commit New-feature: merge master hot-fix merge with possible conflicts! new-feature
31 Using GIT branches 31 Always merge master on your local branch first Most updates on the same files are merged without conflicts Sometimes a manual merge is necessary You will need to practice it with your favorite merge tool Hot-fix: merge New-feature: merge master hot-fix $ git mergetool --tool=meld new-feature $ man git-mergetool merge and resolve conflicts
32 Using GIT branches 32 Merge conflicts Never merge on your master with potential conflicts... NEVER break your master! We mean it, NEVER! master X new-feature $ git mergetool --tool=meld $ man git-mergetool
33 Using GIT branches 33 Never break your master branch Never merge on your master with potential conflicts Always merge on your branch first... master new-feature $ git mergetool --tool=meld resolve conflicts, if any $ man git-mergetool
34 Using GIT branches 34 Never break your master branch Never merge on your master with potential conflicts Always merge on your branch first Always run regression tests before merging back on master master new-feature $ git mergetool --tool=meld $ man git-mergetool resolve conflicts, if any run regression tests
35 Using GIT branches 35 Safe Merge Workflow (1) run regression tests, they must pass before you can considering your work done (2) commit on your branch (3) merge the master branch on your branch (4) if the merge changed something goto (1) (5) merge your branch in the master branch master Final merge new-feature last commit always re-run regression tests run regression tests merge and resolve conflicts, if any last commit before merging with master
36 Using GIT branches 36 Safe Merge Workflow Using a merge branch Easy toss of the merge branch, if the merge should fail Easier if you ever need to checkout back and forth across branches (hot-fix for examples) master branch new-feature branch merge merge merge resolve conflicts, if any run regression tests
37 Using GIT Practice makes perfect 37 Do practice Again and again, until you are confortable with GIT Scared of making a mistake use branches Really scared try it on a copy of your project first Do not procrastinate Until you have a team project Keep it simple You will be happy you did, believe us Keep doing your backups Better safe than sorry Even if you use git clones
38 Using GIT Team Cooperation 38 Vera and John need to work together on a project They want to divide the work into features Develop features independently Vera Merge features incrementally Distributed Git Powerful and flexible tool Challenges Keep it simple! Really. Focus on keeping merges small and thus easy John
39 Using GIT Team Cooperation 39 Vera git-clone team-server git-clone John
40 Using GIT Team Cooperation 40 Cloning repositories across machines Create a repository (git-init), as a shared bare repository (--shared --bare) team-server $ mkdir -p /git-projects/projecta $ cd /git-projects/projecta $ git init --shared --bare Initialized empty shared Git repository in /git-projects/projecta $
41 Using GIT Team Cooperation 41 Cloning repositories across machines Team members clone that repository They get a local copy (called a clone) Vera git-clone team-server $ git clone vera@team-server:/git-projects/projecta $ cd ProjectA $ git-clone John
42 Using GIT Team Cooperation 42 Cooperation basics Vera does some work and publishes it John pulls Vera s work Vera $ cd ProjectA do some work does full testing $ git add all $ git commit -a -m Feature A $ git push git-server git-push John git-pull $ cd ProjectA $ git pull Now John sees Vera s work
43 Using GIT Team Cooperation 43 Challenges ALWAYS follow the same push-pull workflow STRIVE to keep merges small and thus easy NEVER break the repository pushing broken code Vera git-server git-push git-pull John
44 Using GIT Team Cooperation 44 1 new-feature 2 5 Vera master 4 git-merge 6 git-merge 3 git-pull 7 git-server 8 git-push Vera s Workflow: (1) create a branch to work in git checkout -b vera.feature.a (2) fully test and then commit git commit... (3) git pull from server clone git pull --all (4) merge master on your branch git merge master (5) fully test and then commit (6) git-merge on your master git checkout master; git merge vera.feature.a (7) tests and commit on master (8) git push
45 Using GIT Team Cooperation 45 Git-branch: new-feature merge conflicts Vera git-merge master git-merge git-pull git-push git-pull git-push git-server X rejected git-push
46 Using GIT Team Cooperation 46 Challenge of rejected git-push You may break the master on your clone But you can still fix it, test it, commit it, and then push it The pull-request pattern Only one team member does all merges on master Other team developers pull the master when starting a branch, from master, for a new feature
47 Using GIT Team Cooperation 47 Git-branch: Branch: vera.feature.a Branch: vera.feature.b Vera git-push master git-pull git-server git-pull git-push Branch: vera.feature.a John master git-merge git-merge
48 Using GIT Team Cooperation 48 Git-branch: Branch: vera.feature.a Checkout: vera.feature.a Vera git-push git-push master git-pull git-server git-pull git-push John Branch: vera.feature.a git-merge John rejects Vera s feature He returns it to Vera master
49 Conclusion 49 Git Powerful source control So keep it simple even simpler really we mean it! When to use it? Use it for your own personal development Use it for team development, but requires rigorous testing Practice it to learn it. Practice some more before using it on real projects... And do not forget, keep it simple. Really simple. Don t forget to backup your server repo
What is version control? (discuss) Who has used version control? Favorite VCS? Uses of version control (read)
1 For the remainder of the class today, I want to introduce you to a topic we will spend one or two more classes discussing and that is source code control or version control. What is version control?
More informationUsing Git to Manage Source RTL
Using Git to Manage Source RTL CS250 Tutorial 1 (Version 082311) August 24, 2011 Brian Zimmer How to use this tutorial This class will be using Git for all of the labs and projects. This will allow the
More informationgit commit --amend git rebase <base> git reflog git checkout -b Create and check out a new branch named <branch>. Drop the -b
Git Cheat Sheet Git Basics Rewriting Git History git init Create empty Git repo in specified directory. Run with no arguments to initialize the current directory as a git repository. git commit
More informationThe Old World. Have you ever had to collaborate on a project by
What the Git? The Old World Have you ever had to collaborate on a project by Shuttling a USB drive back and forth Using Dropbox E-mailing your document around Have you ever accidentally deleted someone
More informationCommon Git Commands. Git Crash Course. Teon Banek April 7, Teon Banek (TakeLab) Common Git Commands TakeLab 1 / 18
Common Git Commands Git Crash Course Teon Banek theongugl@gmail.com April 7, 2016 Teon Banek (TakeLab) Common Git Commands TakeLab 1 / 18 Outline 1 Introduction About Git Setup 2 Basic Usage Trees Branches
More informationTizen/Artik IoT Practice Part 4 Open Source Development
1 Tizen/Artik IoT Practice Part 4 Open Source Development Sungkyunkwan University Contents 2 SCM Tool: Git Version Management Local & Remote Repository Branch Management Github Contribution Process Issue
More informationGit. Charles J. Geyer School of Statistics University of Minnesota. Stat 8054 Lecture Notes
Git Charles J. Geyer School of Statistics University of Minnesota Stat 8054 Lecture Notes 1 Before Anything Else Tell git who you are. git config --global user.name "Charles J. Geyer" git config --global
More informationVersion Control System - Git. zswu
Version Control System - Git zswu Overview Why VCS? Why Git? Using Git Personally Using Git with Others Etiquette Rules of Using Git Tools & Services Tips 2 Why VCS (1/3) How do you manage your homework?
More informationWindows. Everywhere else
Git version control Enable native scrolling Git is a tool to manage sourcecode Never lose your coding progress again An empty folder 1/30 Windows Go to your programs overview and start Git Bash Everywhere
More informationDEAD-SIMPLE VERSION CONTROL FOR YOUR TEAM GIT WITH MATTHEW REIDSMA GRAND VALLEY STATE UNIVERSITY
DEAD-SIMPLE VERSION CONTROL FOR YOUR TEAM WITH GIT MATTHEW REIDSMA GRAND VALLEY STATE UNIVERSITY WHO DOESN T USE VERSION CONTROL? VERSION CONTROL WHO? OH BOY. WHY YOU NEED VERSION CONTROL GIT GIT WHY GIT
More information1. Git. Robert Snapp
. Git Robert Snapp snapp@cs.uvm.edu Department of Computer Science University of Vermont CS 3 (UVM). Git Fall 0 / Git CS 3 (UVM). Git Fall 0 / Setting your defaults in /.git > git config --global user.name
More informationAbout SJTUG. SJTU *nix User Group SJTU Joyful Techie User Group
About SJTUG SJTU *nix User Group SJTU Joyful Techie User Group Homepage - https://sjtug.org/ SJTUG Mirrors - https://mirrors.sjtug.sjtu.edu.cn/ GitHub - https://github.com/sjtug Git Basic Tutorial Zhou
More informationGit. CSCI 5828: Foundations of Software Engineering Lecture 02a 08/27/2015
Git CSCI 5828: Foundations of Software Engineering Lecture 02a 08/27/2015 1 Lecture Goals Present a brief introduction to git You will need to know git to work on your presentations this semester 2 Git
More informationGit, the magical version control
Git, the magical version control Git is an open-source version control system (meaning, it s free!) that allows developers to track changes made on their code files throughout the lifetime of a project.
More informationVersion Control. Software Carpentry Github s Hello World Git For Ages 4 And Up You need source code control now
A version control system (VCS) is a tool or system for keeping track of changes in files. A primitive form of VCS would be making a copy of a file every time you want to make a new version of the file.
More informationSubmitting your Work using GIT
Submitting your Work using GIT You will be using the git distributed source control system in order to manage and submit your assignments. Why? allows you to take snapshots of your project at safe points
More informationGetting the files for the first time...2. Making Changes, Commiting them and Pull Requests:...5. Update your repository from the upstream master...
Table of Contents Getting the files for the first time...2 Making Changes, Commiting them and Pull Requests:...5 Update your repository from the upstream master...8 Making a new branch (for leads, do this
More informationLab Exercise Git: A distributed version control system
Lunds tekniska högskola Datavetenskap, Nov 21, 2016 EDAF45 Programvaruutveckling i grupp projekt Labb 2 (Git): Labbhandledning Checked on Git versions: 2.7.4 Lab Exercise Git: A distributed version control
More informationCS 520: VCS and Git. Intermediate Topics Ben Kushigian
CS 520: VCS and Git Intermediate Topics Ben Kushigian https://people.cs.umass.edu/~rjust/courses/2017fall/cs520/2017_09_19.zip Our Goal Our Goal (Overture) Overview the basics of Git w/ an eye towards
More informationGit: Distributed Version Control
Git: Distributed Version Control Computer Science and Engineering College of Engineering The Ohio State University Lecture 3 Demo Prep: Empty (but initialized) repo Linear development: Create, edit, rename,
More informationCS314 Software Engineering Configuration Management
CS314 Software Engineering Configuration Management Dave Matthews Configuration Management Management of an evolving system in a controlled way. Version control tracks component changes as they happen.
More informationWorking in Teams CS 520 Theory and Practice of Software Engineering Fall 2018
Working in Teams CS 520 Theory and Practice of Software Engineering Fall 2018 Version Control September 18, 2018 Thursday (September 20) First in-class exercise On using git (today is a prelude with useful
More informationGit for Subversion users
Git for Subversion users Zend webinar, 23-02-2012 Stefan who? Stefan who? Freelancer: Ingewikkeld Stefan who? Freelancer: Ingewikkeld Symfony Community Manager Stefan who? Freelancer: Ingewikkeld Symfony
More informationVersion control CSE 403
Version control CSE 403 Goals of a version control system Keep a history of your work Explain the purpose of each change Checkpoint specific versions (known good state) Recover specific state (fix bugs,
More informationRevision Control. How can 4. Slides #4 CMPT 276 Dr. B. Fraser. Local Topology Simplified. Git Basics. Revision Control:
How can 4 (or 4000) developers work on a product at once? Revision Control Revision Control Revision Control: Also called version control, source control, software configuration management. Motivation:
More informationEffective Software Development and Version Control
Effective Software Development and Version Control Jennifer Helsby, Eric Potash Computation for Public Policy Lecture 5: January 19, 2016 computationforpolicy.github.io Announcements Do look at the readings
More informationAdvanced Operating Systems Control Versioning with GIT. Giuseppe Massari
Control Versioning with GIT Giuseppe Massari giuseppe.massari@polimi.it Outline 2/54 Why using version control tools? Why Git? First steps Getting help and configuration Basic concepts Local repository
More informationObject Oriented Programming. Week 1 Part 2 Git and egit
Object Oriented Programming Part 2 Git and egit Lecture Review of Git Local Repository Remote Repository Using Git from Eclipse Review of Git 3 What is Git? Software Configuration Management (SCM) Supports
More informationVersion Control with GIT
Version Control with GIT Benjamin Roth CIS LMU München Benjamin Roth (CIS LMU München) Version Control with GIT 1 / 30 Version Control Version control [...] is the management of changes to documents, computer
More information2 Initialize a git repository on your machine, add a README file, commit and push
BioHPC Git Training Demo Script First, ensure that git is installed on your machine, and you have configured an ssh key. See the main slides for instructions. To follow this demo script open a terminal
More informationVersion Control. Second level Third level Fourth level Fifth level. - Software Development Project. January 17, 2018
Version Control Click to edit Master EECS text 2311 styles - Software Development Project Second level Third level Fourth level Fifth level January 17, 2018 1 But first, Screen Readers The software you
More informationgit Version: 2.0b Merge combines trees, and checks out the result Pull does a fetch, then a merge If you only can remember one command:
Merge combines trees, and checks out the result Pull does a fetch, then a merge If you only can remember one command: git --help Get common commands and help git --help How to use git
More informationJohn DeDourek Professor Emeritus Faculty of Computer Science University of New Brunswick GIT
John DeDourek Professor Emeritus Faculty of Computer Science University of New Brunswick GIT What is Git? A source code control system Implies program code A version control system Implies any sort of
More informationSoftware Development I
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
More informationGit. Presenter: Haotao (Eric) Lai Contact:
Git Presenter: Haotao (Eric) Lai Contact: haotao.lai@gmail.com 1 Acknowledge images with white background is from the following link: http://marklodato.github.io/visual-git-guide/index-en.html images with
More informationCrash Course in C++ R F L Evans. www-users.york.ac.uk/~rfle500/
Crash Course in C++ R F L Evans www-users.york.ac.uk/~rfle500/ Course overview Lecture 1 - Introduction to C++ Lecture 2 - Functions and Data Lecture 3 - Namespaces and Files Lecture 4 - Code Organization
More informationLab 08. Command Line and Git
Lab 08 Command Line and Git Agenda Final Project Information All Things Git! Make sure to come to lab next week for Python! Final Projects Connect 4 Arduino ios Creative AI Being on a Team - How To Maximize
More informationgit-flow Documentation
git-flow Documentation Release 1.0 Johan Cwiklinski Jul 14, 2017 Contents 1 Presentation 3 1.1 Conventions............................................... 4 1.2 Pre-requisites...............................................
More informationGit: Distributed Version Control
Git: Distributed Version Control Computer Science and Engineering College of Engineering The Ohio State University Lecture 3 What Does "D" Stand For? Distributed version control Multiple people, distributed
More informationGit Workflows. Sylvain Bouveret, Grégory Mounié, Matthieu Moy
s Sylvain Bouveret, Grégory Mounié, Matthieu Moy 2017 [first].[last]@imag.fr http://recherche.noiraudes.net/resources/git/git-workflow-slides.pdf 1 / 16 Goals of the presentation Global history: multiple
More informationIC Documentation. Release 0.1. IC team
IC Documentation Release 0.1 IC team Jan 22, 2019 Contents 1 How to contribute to IC 3 1.1 Prepare github.............................................. 3 1.2 Prepare your repositories.........................................
More informationVersion control CSE 403
Version control CSE 403 Goals of a version control system Keep a history of your work Explain the purpose of each change Checkpoint specific versions (known good state) Recover specific state (fix bugs,
More informationFEEG Applied Programming 3 - Version Control and Git II
FEEG6002 - Applied Programming 3 - Version Control and Git II Richard Boardman, Sam Sinayoko 2016-10-19 Outline Learning outcomes Working with a single repository (review) Working with multiple versions
More informationSoftware Project (Lecture 4): Git & Github
Software Project (Lecture 4): Git & Github Wouter Swierstra, Atze Dijkstra Feb 2016 Wouter Swierstra, Atze Dijkstra Software Project (Lecture 4): Git & Github Feb 2016 1 / 45 Wouter Swierstra, Atze Dijkstra
More informationb. Developing multiple versions of a software project in parallel
Multiple-Choice Questions: 1. Which of these terms best describes Git? a. Integrated Development Environment b. Distributed Version Control System c. Issue Tracking System d. Web-Based Repository Hosting
More informationGIT FOR SYSTEM ADMINS JUSTIN ELLIOTT PENN STATE UNIVERSITY
GIT FOR SYSTEM ADMINS JUSTIN ELLIOTT PENN STATE UNIVERSITY 1 WHAT IS VERSION CONTROL? Management of changes to documents like source code, scripts, text files Provides the ability to check documents in
More informationGit GitHub & secrets
Git&GitHub secrets git branch -D local-branch git push origin :local-branch Much like James Cameron s Avatar, Git doesn t make any goddamn sense This talk throws a ton of stuff at you This talk throws
More informationGithub/Git Primer. Tyler Hague
Github/Git Primer Tyler Hague Why Use Github? Github keeps all of our code up to date in one place Github tracks changes so we can see what is being worked on Github has issue tracking for keeping up with
More informationCSE 391 Lecture 9. Version control with Git
CSE 391 Lecture 9 Version control with Git slides created by Ruth Anderson & Marty Stepp, images from http://git-scm.com/book/en/ http://www.cs.washington.edu/391/ 1 Problems Working Alone Ever done one
More information1. Which of these Git client commands creates a copy of the repository and a working directory in the client s workspace. (Choose one.
Multiple-Choice Questions: 1. Which of these Git client commands creates a copy of the repository and a working directory in the client s workspace. (Choose one.) a. update b. checkout c. clone d. import
More informationVisualizing Git Workflows. A visual guide to 539 workflows
Visualizing Git Workflows A visual guide to 539 workflows Table of Contents Notation Collaboration Without Review or Branches Merge Conflicts Requesting Code Review Collaboration with Multiple Branches
More informationLaboratorio di Programmazione. Prof. Marco Bertini
Laboratorio di Programmazione Prof. Marco Bertini marco.bertini@unifi.it http://www.micc.unifi.it/bertini/ Code versioning: techniques and tools Software versions All software has multiple versions: Each
More informationCSE 332: Data Structures and Parallelism Winter 2019 Setting Up Your CSE 332 Environment
CSE 332: Data Structures and Parallelism Winter 2019 Setting Up Your CSE 332 Environment This document guides you through setting up Eclipse for CSE 332. The first section covers using gitlab to access
More informationGit tutorial. Katie Osterried C2SM. October 22, 2015
Git tutorial Katie Osterried C2SM October 22, 2015 Outline 1 What is Git and why are we switching? 2 Working with Git 3 Branching and Merging 4 Working with remote repositories 5 Recommendations Outline
More informationGit better. Collaborative project management using Git and GitHub. Matteo Sostero March 13, Sant Anna School of Advanced Studies
Git better Collaborative project management using Git and GitHub Matteo Sostero March 13, 2018 Sant Anna School of Advanced Studies Let s Git it done! These slides are a brief primer to Git, and how it
More informationGit: (Distributed) Version Control
Git: (Distributed) Version Control Computer Science and Engineering College of Engineering The Ohio State University Lecture 6 The Need for Version Control Track evolution of a software artifact Development
More informationGETTING TO KNOW GIT: PART II JUSTIN ELLIOTT PENN STATE UNIVERSITY
GETTING TO KNOW GIT: PART II JUSTIN ELLIOTT PENN STATE UNIVERSITY 1 REVERTING CHANGES 2 REVERTING CHANGES Change local files git reset git checkout Revert a commit in the branch history git revert Reset
More informationTDDC88 Lab 4 Software Configuration Management
TDDC88 Lab 4 Software Configuration Management Introduction "Version control is to programmers what the safety net is to a trapeze artist. Knowing the net is there to catch them if they fall, aerialists
More informationCS 390 Software Engineering Lecture 5 More Git
CS 390 Software Engineering Lecture 5 More Git Reference: Scott Chacon and Ben Straub, Pro Git, published by Apress, available at https://git-scm.com/book/en/v2. Outline Finish local repository Remote
More informationIntroduction to Git. Database Systems DataLab, CS, NTHU Spring, 2018
Introduction to Git Database Systems DataLab, CS, NTHU Spring, 2018 1 Outline Version control system Git basics Git branch Remote repository 2 Outline Version control system Git basics Git branch Remote
More informationGit Guide. Meher Krishna Patel. Created on : Octorber, 2017 Last updated : October, More documents are freely available at PythonDSP
Git Guide Meher Krishna Patel Created on : Octorber, 2017 Last updated : October, 2018 More documents are freely available at PythonDSP Table of contents Table of contents i 1 Commands Summary 1 2 Git
More informationCSE 332: Data Structures and Parallelism Autumn 2017 Setting Up Your CSE 332 Environment In this document, we will provide information for setting up Eclipse for CSE 332. The first s ection covers using
More informationHow to version control like a pro: a roadmap to your reproducible & collaborative research
How to version control like a pro: a roadmap to your reproducible & collaborative research The material in this tutorial is inspired by & adapted from the Software Carpentry lesson on version control &
More informationFrom Commits to Collaboration: A Git Tutorial for Social Scientists
From Commits to Collaboration: A Git Tutorial for Social Scientists Paul Sangrey, University of Pennsylvania December 12, 2017 The Replication Crisis continues to heat up discussion across social science.
More informationGit Tutorial. André Sailer. ILD Technical Meeting April 24, 2017 CERN-EP-LCD. ILD Technical Meeting, Apr 24, 2017 A. Sailer: Git Tutorial 1/36
ILD Technical Meeting, Apr 24, 2017 A. Sailer: Git Tutorial 1/36 Git Tutorial André Sailer CERN-EP-LCD ILD Technical Meeting April 24, 2017 LD Technical Meeting, Apr 24, 2017 A. Sailer: Git Tutorial 2/36
More informationChapter 5. Version Control: Git
Chapter 5 Version Control: Git The Replication Crisis continues to heat up discussion across social science. Hence principled researchers want to make their work easy to replicate and reputable journals
More informationIndex. Alias syntax, 31 Author and commit attributes, 334
Index A Alias syntax, 31 Author and commit attributes, 334 B Bare repository, 19 Binary conflict creating conflicting changes, 218 during merging, 219 during rebasing, 221 Branches backup, 140 clone-with-branches
More informationCSC 2700: Scientific Computing
CSC 2700: Scientific Computing Record and share your work: revision control systems Dr Frank Löffler Center for Computation and Technology Louisiana State University, Baton Rouge, LA Feb 13 2014 Overview
More informationGit AN INTRODUCTION. Introduction to Git as a version control system: concepts, main features and practical aspects.
Git AN INTRODUCTION Introduction to Git as a version control system: concepts, main features and practical aspects. How do you share and save data? I m working solo and I only have one computer What I
More informationHistory...: Displays a window of Gitk, a standard commit viewer for Git.
Git Services Wakanda includes Git features that will help you manage the evolution of your solutions and files. These features are designed to share code as well as to handle multi developer projects and
More informationIntroduction to Supercomputing
Introduction to Supercomputing TMA4280 Introduction to development tools 0.1 Development tools During this course, only the make tool, compilers, and the GIT tool will be used for the sake of simplicity:
More informationGit(Lab) Tutorial and Hands-On
Git(Lab) Tutorial and Hands-On Analysis Workshop 34th KATRIN Collaboration Meeting Institut für Kernphysik WWU Münster 21.02.2018 Git(Lab) Tutorial and Hands-On Or: Why branches aren t homeomorphic endofunctors
More informationProject Management. Overview
Project Management Overview How to manage a project? What is software configuration management? Version control systems Issue tracking systems N. Meng, L. Zhang 2 1 What is Project Management? Effective
More informationGit! Fundamentals. IT Pro Roundtable! June 17, 2014!! Justin Elliott! ITS / TLT! Classroom and Lab Computing!! Michael Potter!
Git! Fundamentals IT Pro Roundtable! June 17, 2014!! Justin Elliott! ITS / TLT! Classroom and Lab Computing!! Michael Potter! IT Communications 1 What is Version Control? Version Control System (VCS)!
More informationCS 320 Introduction to Software Engineering Spring February 06, 2017
CS 320 Introduction to Software Engineering Spring 2017 February 06, 2017 Recap: Software development process models Traditional models Waterfall model Iterative and incremental Prototyping Spiral model
More informationCESSDA Expert Seminar 13 & 14 September 2016 Prague, Czech Republic
CESSDA Expert Seminar 13 & 14 September 2016 Prague, Czech Republic - basics Matthäus Zloch GESIS Outline for this session Git introduction and some theory Git command basics (plus some little advanced)
More informationUse git rm to remove files from workspace
More Git: Removing files from the repository Branches, tags, merge conflicts Pull requests CPSC 491 First: Get up to speed from last time Removing files from your workspace Use git rm to remove files from
More informationVersion control. what is version control? setting up Git simple command-line usage Git basics
Version control what is version control? setting up Git simple command-line usage Git basics Version control - intro ensure we keep track of changes, updates, contributions, suggested mods... could try
More informationIntroduction to Git and GitHub for Writers Workbook February 23, 2019 Peter Gruenbaum
Introduction to Git and GitHub for Writers Workbook February 23, 2019 Peter Gruenbaum Table of Contents Preparation... 3 Exercise 1: Create a repository. Use the command line.... 4 Create a repository...
More informationGit and GitHub. Dan Wysocki. February 12, Dan Wysocki Git and GitHub February 12, / 48
Git and GitHub Dan Wysocki February 12, 2015 Dan Wysocki Git and GitHub February 12, 2015 1 / 48 1 Version Control 2 Git 3 GitHub 4 Walkthrough Dan Wysocki Git and GitHub February 12, 2015 2 / 48 Version
More informationSubversion Repository Layout
Subversion Subversion Control manages documents over time keeps a history of all changes - multiple versions of every file coordinates work of multiple authors avoids conflicts...and helps to resolve them
More informationImproving Your Life With Git
Improving Your Life With Git Lizzie Lundgren elundgren@seas.harvard.edu Graduate Student Forum 26 April 2018 Scenarios to Avoid My code was deleted from 90-day retention! Crap, I can t remember what I
More informationWorking with GIT. Florido Paganelli Lund University MNXB Florido Paganelli MNXB Working with git 1/47
Working with GIT MNXB01 2017 Florido Paganelli Lund University florido.paganelli@hep.lu.se Florido Paganelli MNXB01-2017 - Working with git 1/47 Required Software Git - a free and open source distributed
More informationVersion Control. Second level Third level Fourth level Fifth level. - Software Development Project. January 11, 2017
Version Control Click to edit Master EECS text 2311 styles - Software Development Project Second level Third level Fourth level Fifth level January 11, 2017 1 Scenario 1 You finished the assignment at
More informationUsing GitHub to Share with SparkFun a
Using GitHub to Share with SparkFun a learn.sparkfun.com tutorial Available online at: http://sfe.io/t52 Contents Introduction Gitting Started Forking a Repository Committing, Pushing and Pulling Syncing
More informationBeyond git add/commit/push
add Working dir commit Staging area push Local Remote Based on original version made by Alexis López @aa_lopez About us @tuxtor @edivargas jorgevargas.mx github.com/tuxtor Review traditionals commands
More informationG E T T I N G S TA R T E D W I T H G I T
G E T T I N G S TA R T E D W I T H G I T A A R O N H O O V E R & B R A D M I N C H J A N U A R Y 2 2, 2 0 1 8 1 Why use a version control system? Much of this document was blatantly cribbed from Allen
More informationOutline The three W s Overview of gits structure Using git Final stuff. Git. A fast distributed revision control system
Git A fast distributed revision control system Nils Moschüring PhD Student (LMU) 1 The three W s What? Why? Workflow and nomenclature 2 Overview of gits structure Structure Branches 3 Using git Setting
More informationVersion Control Systems
Nothing to see here. Everything is under control! September 16, 2015 Change tracking File moving Teamwork Undo! Undo! UNDO!!! What strategies do you use for tracking changes to files? Change tracking File
More informationTechnology Background Development environment, Skeleton and Libraries
Technology Background Development environment, Skeleton and Libraries Christian Kroiß (based on slides by Dr. Andreas Schroeder) 18.04.2013 Christian Kroiß Outline Lecture 1 I. Eclipse II. Redmine, Jenkins,
More informationA L A TEX-oriented intro to Git
A L A TEX-oriented intro to Git the tex part is in the interactive demo not in the slides Danielle Amethyst Brake 22 October - 26 November, 2018 ICERM Semester on Nonlinear Algebra Inter-week collaboration
More informationGit Resolve Conflict Using Mine Command Line
Git Resolve Conflict Using Mine Command Line We'll explore what approaches there are to resolve the conflict, and then we'll Please, fix them up in the work tree, and then use 'git add/rm ' as appropriate
More information1/20/13 Git tutorial. Git tutorial. Mike Nolta. file:///users/nolta/github/reveal.js/git.html?print-paper#/ 1/31
Git tutorial Mike Nolta file:///users/nolta/github/reveal.js/git.html?print-paper#/ 1/31 1. Basics file:///users/nolta/github/reveal.js/git.html?print-paper#/ 2/31 Tell git who you are $ git config --global
More informationGit AN INTRODUCTION. Introduction to Git as a version control system: concepts, main features and practical aspects.
Git AN INTRODUCTION Introduction to Git as a version control system: concepts, main features and practical aspects. How do you share and save data? I m working solo and I only have one computer What I
More informationRSARTE Git Integration
RSARTE Git Integration Anders Ek IBM INTRODUCTION...3 EGIT BRIEF OVERVIEW...3 GETTING STARTED...6 ECLIPSE PROJECTS AND GIT REPOSITORIES...6 ACCESSING A REMOTE GIT REPOSITORY...7 IMPORTING AN EXISTING REPOSITORY...8
More informationReview Version Control Concepts
Review Version Control Concepts SWEN-261 Introduction to Software Engineering Department of Software Engineering Rochester Institute of Technology Managing change is a constant aspect of software development.
More informationCSCI 2132: Software Development. Norbert Zeh. Faculty of Computer Science Dalhousie University. Subversion (and Git) Winter 2019
CSCI 2132: Software Development Subversion (and Git) Norbert Zeh Faculty of Computer Science Dalhousie University Winter 2019 Version Control Systems A version control system allows us to Record the history
More informationHow to git with proper etiquette
How to git with proper etiquette Let's start fixing how we use git here in crew so our GitHub looks even more awesome and you all get experience working in a professional-like git environment. How to use
More informationIntro Git Advices. Using Git. Matthieu Moy. Matthieu Moy Git 2016 < 1 / 11 >
Using Git Matthieu Moy Matthieu.Moy@imag.fr 2016 Matthieu Moy (Matthieu.Moy@imag.fr) Git 2016 < 1 / 11 > Outline 1 Revision Control System 2 Git: Basic Principles 3 Advices Using Git Matthieu Moy (Matthieu.Moy@imag.fr)
More informationAssumptions. GIT Commands. OS Commands
Many of the world s largest dev teams have adopted Git and it s not hard to see why It can handle small and large projects easily It has a tiny footprint It outclasses other version control tools It s
More information