GIT pour développeur

72
Git for developers Source code management with git

Transcript of GIT pour développeur

Page 1: GIT pour développeur

Git for developers

Source code management with git

Page 2: GIT pour développeur

1

La 1ère école 100 % dédiée à l'open source

Open Source School est fondée à l'initiative de Smile, leader de l'intégration et de l'infogérance open source, et de l'EPSI,établissement privé pionnier de l’enseignement supérieur en informatique.

Dans le cadre du Programme d’Investissements d’Avenir (PIA), le gouvernement français a décidé de soutenir la création de cette école en lui attribuant une première aide de 1,4M€ et confirme sa volonté de soutenir la filière du Logiciel Libre actuellement en plein développement.

Avec une croissance annuelle de plus de 10%, et 4 000 postes vacants chaque année dans le secteur du Logiciel Libre, OSS entend répondre à la pénurie de compétences du secteur en mobilisant l’ensemble de l’écosystème et en proposant la plus vaste offre en matière de formation aux technologies open source tant en formation initiale qu'en formation continue.

Page 3: GIT pour développeur

2

Les formations du plein emploi !

Formation Continue

Open Source School "Executive Education" est un organisme de formation agréé qui propose un catalogue de plus de 200 formations professionnelles et différents dispositifs de reconversion permettant le retour à l’emploi (POE) ou une meilleure employabilité pour de nombreux professionnels de l’informatique.

Pour vos demandes : [email protected]

Formation Initiale

100% logiciels libres et 100% alternance, le cursus Open Source School s’appuie sur le référentiel des blocs de compétences de l’EPSI.Il est sanctionné par un titre de niveau I RNCP, Bac+5. Le programme est proposé dans 6 campus à Bordeaux, Lille, Lyon, Montpellier, Nantes, Paris.

Page 4: GIT pour développeur

3

Nos domaines de formations

Page 5: GIT pour développeur

Git overview and base concepts Getting started with git Working with git References

Agenda

1 Git overview and base concepts

2 Getting started with git

3 Working with git

4 References

www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 2/69

Page 6: GIT pour développeur

Git overview and base concepts Getting started with git Working with git References

Git overview and base concepts

www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 3/69

Page 7: GIT pour développeur

Git overview and base concepts Getting started with git Working with git References

Git presentation and history

Git presentation and history

www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 4/69

Page 8: GIT pour développeur

Git overview and base concepts Getting started with git Working with git References

Git presentation and history

Git presentation and history

Git is a distributed revision control and source codemanagement system

Git is a free software created by Linus Torvalds

Git is available under the GNU GPL V2 license

Git was initialy created to host the Linux kernel sources afterthe hosting on BitKeeper was abandonned

Key dates:

3 April 2005: Linus starts development16 June 2005: release 2.6.12 of the linux kernel managed by git26 July 2005: handover of maintenance to a major contributor(Junio Hamano)21 December 2005: release of v1.0 of git28 May 2014: release of v2.0 of git

www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 5/69

Page 9: GIT pour développeur

Git overview and base concepts Getting started with git Working with git References

Other SCMs

Other SCMs

www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 6/69

Page 10: GIT pour développeur

Git overview and base concepts Getting started with git Working with git References

Other SCMs

Other SCMs

Centralized (client/server):

Concurrent Version System (CVS)Subversion (svn)

Distributed:

MercurialGNU BazaarBitKeeper

www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 7/69

Page 11: GIT pour développeur

Git overview and base concepts Getting started with git Working with git References

Distributed system benefits and drawbacks

Distributed system benefits and drawbacks

www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 8/69

Page 12: GIT pour développeur

Git overview and base concepts Getting started with git Working with git References

Distributed system benefits and drawbacks

Distributed system benefits and drawbacks

Benefits:

Full history available locallyNo need for network connection for usual operationsNo need for manager approval for day to day usage (branch,tag, merge ...)There is still a reference repositoryYou can clone the reference repository or any existing cloneMerge system (vs. lock one)

Drawbacks:

Initial cloning can be long (full history)No lock system (can be a problem for binaries)

www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 9/69

Page 13: GIT pour développeur

Git overview and base concepts Getting started with git Working with git References

Data integrity control

Data integrity control

www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 10/69

Page 14: GIT pour développeur

Git overview and base concepts Getting started with git Working with git References

Data integrity control

Data integrity control

Usage of SHA-1 hashes (same result on any machine/systemfor the same content)

160 bits footprint (40 chars.)

All files are stored in .git/objects

Files are identified by an ID: fast and efficient

www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 11/69

Page 15: GIT pour développeur

Git overview and base concepts Getting started with git Working with git References

Understanding git architecture

Understanding git architecture

www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 12/69

Page 16: GIT pour développeur

Git overview and base concepts Getting started with git Working with git References

Understanding git architecture

Understanding git architecture: Working areas

There are basically 4 areas you have to work with:

The working directory: it holds your project files ; this is wereyou make changes.

The staging area: this is were you add the snapshot of thefiles you want to commit to your repository.

The local repository: this is were you commit your changes ;this is held in the .git directory.

The remote repository: this is the reference that you use topull the changes made by other developpers and push yourown changes ; this repository is bare (it contains no workingcopy) ; in Smile context, this will be a GitLab repository onhttps://git.smile.fr/ that you access over http or ssh.

www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 13/69

Page 17: GIT pour développeur

Git overview and base concepts Getting started with git Working with git References

Understanding git architecture

Understanding git architecture: Operations overview

www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 14/69

Page 18: GIT pour développeur

Git overview and base concepts Getting started with git Working with git References

Getting started with git

www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 15/69

Page 19: GIT pour développeur

Git overview and base concepts Getting started with git Working with git References

Installing git and needed tools

Installing git and needed tools

www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 16/69

Page 20: GIT pour développeur

Git overview and base concepts Getting started with git Working with git References

Installing git and needed tools

Installing git and needed tools

Linux debian/ubuntuapt-get install git git-svn gitk meld

Windows

msysgittortoiseGit

Mac

http://code.google.com/p/git-osx-installerhttp://www.macports.org

sudo port install git-core +svn +doc \

+bash_completion +gitweb

Eclipse

egit

www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 17/69

Page 21: GIT pour développeur

Git overview and base concepts Getting started with git Working with git References

Installing git and needed tools

Installing git and needed tools: Practice

Install git on your machine

Make sure the git command is available in your terminal

Check which git version is in use

www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 18/69

Page 22: GIT pour développeur

Git overview and base concepts Getting started with git Working with git References

Getting help

Getting help

www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 19/69

Page 23: GIT pour développeur

Git overview and base concepts Getting started with git Working with git References

Getting help

Getting help

For all sub-commands, git integrates a detailed help accessiblewith:git help <command>

All configuration variables can be inspected with a good detaillevel with command:git help config

Most commands and references can be autocompleted on thecommande line, so do not hesitate to hit the TAB key:git [TAB] # list of commands

git cmd [TAB] # list of options

git cmd -o [TAB] # list of remotes/branches

www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 20/69

Page 24: GIT pour développeur

Git overview and base concepts Getting started with git Working with git References

Getting help

Getting help: Practice

Look at global help

Use autocompletion with the help command (type the firstletter of a git subcommand)

www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 21/69

Page 25: GIT pour développeur

Git overview and base concepts Getting started with git Working with git References

Telling git who you are

Telling git who you are

www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 22/69

Page 26: GIT pour développeur

Git overview and base concepts Getting started with git Working with git References

Telling git who you are

Telling git who you are

Before you start any work in git, you must set your identitycorrectly. It will be used to identify your as an author or committer:

git config --global user.name "Olivier Clavel"

git config --global user.email \

"[email protected]"

www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 23/69

Page 27: GIT pour développeur

Git overview and base concepts Getting started with git Working with git References

Telling git who you are

Telling git who you are: Practice

Configure your full name and email

www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 24/69

Page 28: GIT pour développeur

Git overview and base concepts Getting started with git Working with git References

Setting editors

Setting editors

www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 25/69

Page 29: GIT pour développeur

Git overview and base concepts Getting started with git Working with git References

Setting editors

Setting editors

You can choose your favorite editor as you wish. Default is$EDITOR (most probably vi). Examples:git config --global core.editor nano

git config --global core.editor gedit

You should as well define your diff editor. The recommendedone is meld on linux:git config --global merge.tool meld

For other diff editor possibilities see:git help mergetool

www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 26/69

Page 30: GIT pour développeur

Git overview and base concepts Getting started with git Working with git References

Setting editors

Setting editors: Practice

Set your favorite text editor

Set your favorite diff editor ; if you don’t have one, installMeld and set it as default

www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 27/69

Page 31: GIT pour développeur

Git overview and base concepts Getting started with git Working with git References

Colors in your terminal

Colors in your terminal

www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 28/69

Page 32: GIT pour développeur

Git overview and base concepts Getting started with git Working with git References

Colors in your terminal

Colors in your terminal

Git can colorize most of its output in the terminal for betterreadability. To globaly enable colors:

git config --global color.ui auto

For fined grained color tuning see all color.* config variables.

www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 29/69

Page 33: GIT pour développeur

Git overview and base concepts Getting started with git Working with git References

Colors in your terminal

Colors in your terminal: Practice

Have a look at color variables in config help

Set default auto color for output

www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 30/69

Page 34: GIT pour développeur

Git overview and base concepts Getting started with git Working with git References

Working with git

www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 31/69

Page 35: GIT pour développeur

Git overview and base concepts Getting started with git Working with git References

Creating a local repository

Creating a local repository

www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 32/69

Page 36: GIT pour développeur

Git overview and base concepts Getting started with git Working with git References

Creating a local repository

Creating a local repository

Initialise an empty local repositorymkdir my_project

cd my_project

git init

Clone an existing remote repositorygit clone \

[email protected]/my_group/my_project.git \

my_project_local_dir

www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 33/69

Page 37: GIT pour développeur

Git overview and base concepts Getting started with git Working with git References

Creating a local repository

Creating a local repository: Practice

Basic set up of your Gitlab account (preferences, ssh key ...)

Create a folder for today’s training

Move to that folder

Initialise a git dir from scratch and copy some files in there

Create another repo by cloning the example for today’straining

www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 34/69

Page 38: GIT pour développeur

Git overview and base concepts Getting started with git Working with git References

Adding files to the staging area

Adding files to the staging area

www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 35/69

Page 39: GIT pour développeur

Git overview and base concepts Getting started with git Working with git References

Adding files to the staging area

Adding files to the staging area

Once you have modified some files in your workdir, you must addthe changes to the staging to prepare them for commit.

First have a look at what has changed:git status

git diff

You should always over-use these commands (with optionseventually)

Add some files to the staging area:git add [file | folder | ...] [file2 | folder2 | ...]

For partial add operations, use the patch mode:git add -p / git add --patch

For fine tuning of add operation, use the interactive mode:git add -i / git add --interactive

www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 36/69

Page 40: GIT pour développeur

Git overview and base concepts Getting started with git Working with git References

Adding files to the staging area

Adding files to the staging area: Practice

Work on your own empty created repo

Examine the state of your dir

Add some more files or make some changes if needed

Add some changes to your staging area

Add an external library

Use the git add interactive and partial modes to add thelibrary to the index

www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 37/69

Page 41: GIT pour développeur

Git overview and base concepts Getting started with git Working with git References

Listing differences

Listing differences

www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 38/69

Page 42: GIT pour développeur

Git overview and base concepts Getting started with git Working with git References

Listing differences

Listing differences

See differences between your working copy and the stagingarea:git diff

See differences between your working copy + staging area andthe last commit on your branch:git diff HEAD

See differences between your staging area and the lastcommmit:git diff --staged

www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 39/69

Page 43: GIT pour développeur

Git overview and base concepts Getting started with git Working with git References

Listing differences

Listing differences: Practice

List differences for files you did not yet add

List differences already added to your staging area

www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 40/69

Page 44: GIT pour développeur

Git overview and base concepts Getting started with git Working with git References

Commiting changes and viewing history

Commiting changes and viewing history

www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 41/69

Page 45: GIT pour développeur

Git overview and base concepts Getting started with git Working with git References

Commiting changes and viewing history

Commiting changes and viewing history

To create a new commmit with the content of the staging area,use git commit.

With no option, it will launch your external editor to let youwrite commit’s message:git commit

Specify the message on the commmand line:git commit -m "my commit message"

You can add all changes to the staging and commit them atonce:git commit -a -m "my commit message"

You can modify a commit:git commit --amend

www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 42/69

Page 46: GIT pour développeur

Git overview and base concepts Getting started with git Working with git References

Commiting changes and viewing history

Commiting changes and viewing history

To look at history of commits, use git log.

Full default history:git log

Show history since one minute ago:git log -p --since="1 minute ago"

Show history of last 2 commits:git log -p HEAD~2..HEAD

www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 43/69

Page 47: GIT pour développeur

Git overview and base concepts Getting started with git Working with git References

Commiting changes and viewing history

Commiting changes and viewing history: Practice

Commit your staged changes

Add some more changes and commit them

Have a look at the history

Get help on git show and examine some commits with it

www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 44/69

Page 48: GIT pour développeur

Git overview and base concepts Getting started with git Working with git References

Creating branches

Creating branches

www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 45/69

Page 49: GIT pour développeur

Git overview and base concepts Getting started with git Working with git References

Creating branches

Creating branches

By default the repository contains the master branch

To create a dev branch based on the latest commit of thecurrent one:git branch dev

To switch on the newly create branch:git checkout dev

www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 46/69

Page 50: GIT pour développeur

Git overview and base concepts Getting started with git Working with git References

Creating branches

Creating branches: Practice

Create a dev branch from master

Switch to dev branch

Make some changes, add, commit them

Switch back to master

List differences between master and dev branches (hint: gethelp on diff)

Get help on the checkout command and figure out how tocreate and switch to a branch named experimental in asingle command

Make some changes in branch experimental, commit them

www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 47/69

Page 51: GIT pour développeur

Git overview and base concepts Getting started with git Working with git References

Merging branches

Merging branches

www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 48/69

Page 52: GIT pour développeur

Git overview and base concepts Getting started with git Working with git References

Merging branches

Merging branches

To merge the changes from one branch into another (e.g. devinto master):git checkout master

git merge dev

Branches can be merged multiple times. Git keeps trace ofthe merge history.

www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 49/69

Page 53: GIT pour développeur

Git overview and base concepts Getting started with git Working with git References

Rebasing

Rebasing

www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 50/69

Page 54: GIT pour développeur

Git overview and base concepts Getting started with git Working with git References

Rebasing

Rebasing

You can rebase one branch on the work done on another.

When you rebase, you are basically adding your work after theone done on the other branch

git pull --rebase

git rebase master

www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 51/69

Page 55: GIT pour développeur

Git overview and base concepts Getting started with git Working with git References

Rebasing

Merging and Rebasing: Practice

Merge dev into master and show logs

Rebase experimental on master and show logs

Merge experimental into master and show logs

Delete branch experimental (hint: git help on branch)

www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 52/69

Page 56: GIT pour développeur

Git overview and base concepts Getting started with git Working with git References

Cherry-picking

Cherry-picking

www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 53/69

Page 57: GIT pour développeur

Git overview and base concepts Getting started with git Working with git References

Cherry-picking

Cherry-picking

You can pick a single commit from one branch and insert it inanother:git cherry-pick <hash>

When you cherry-pick, the original commit is patched incurrent history and a new commit is done

You can compare commits between branches:git cherry -v master dev

www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 54/69

Page 58: GIT pour développeur

Git overview and base concepts Getting started with git Working with git References

Cherry-picking

Cherry-picking: Practice

Checkout the dev branch, make some updates and committhem

Checkout master and list commits diff

Cherry-pick your commit from dev to master

List commits diff again

www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 55/69

Page 59: GIT pour développeur

Git overview and base concepts Getting started with git Working with git References

Sharing work with the remote repository

Sharing work with the remote repository

www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 56/69

Page 60: GIT pour développeur

Git overview and base concepts Getting started with git Working with git References

Sharing work with the remote repository

Sharing work with the remote repository

If you have cloned a remote, git already has the master as aremote tracking branch. Else you need to add the remote,publish the branch and set it as upstream:git remote add origin \

[email protected]:my_group/my_project.git

git push --set-upstream origin master

You proceed the same way with new branches you want topublish and track:git push -u origin dev

To retrieve changes pushed by others on the remote, you mustfetch them and merge them in your branch:git pull

# or in two steps

git fetch && git merge

www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 57/69

Page 61: GIT pour développeur

Git overview and base concepts Getting started with git Working with git References

Sharing work with the remote repository

Sharing work with the remote repository

In most cases, on long living branches, you will want to rebaseyour work on the remote branch:git pull --rebase

To rebase automatically for a specific branch each time youpull:git config branch.master.rebase true

git pull

To rebase automatically for all new branches (add –global tohave it permanent on the machine):git config branch.autosetuprebase always

www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 58/69

Page 62: GIT pour développeur

Git overview and base concepts Getting started with git Working with git References

Sharing work with the remote repository

Remote interaction: Practice

Create a training repository under your name on gitlab.Please remember to clean it up after the training. Thanks :)

Add this new remote as origin on your local home maderepository

Push master on origin and set origin/master as remotetracking branch

Move to the example clone repository

Config master to always rebase on upstream on pull

Push your changes (if you can)

Pull changes from others

www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 59/69

Page 63: GIT pour développeur

Git overview and base concepts Getting started with git Working with git References

Working with tags

Working with tags

www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 60/69

Page 64: GIT pour développeur

Git overview and base concepts Getting started with git Working with git References

Working with tags

Working with tags

Tags are used to identify a specific version of a specificbranch, typically to identify a version pushed to producion

Tags can be organised with prefixes like for folders on a disk

You can create a lightweight tag (default):git tag production/20140116_0902 master

Or a full tag object, even with a GPG signature:git tag -s -m "pushing release XXX to \

uat for testing" uat/20140112_1735 master

Signed tags can be verified:git tag -v uat/20140112_1735

www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 61/69

Page 65: GIT pour développeur

Git overview and base concepts Getting started with git Working with git References

Working with tags

Working with tags: Practice

Create some tags

Push those tags to the origin remote (hint: help push)

www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 62/69

Page 66: GIT pour développeur

Git overview and base concepts Getting started with git Working with git References

Ignoring files

Ignoring files

www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 63/69

Page 67: GIT pour développeur

Git overview and base concepts Getting started with git Working with git References

Ignoring files

Ignoring files

Personnal ignore file globally applied on your machine:git config --global core.excludesfile \

/home/<USER>/.gitignore

vim /home/<USER>/.gitignore

Local and personnal ignore file for a specific repository:vim .git/info/exclude

Local shared ignore file commited in the repository:cd my_project

vim .gitignore

git add .gitignore

git commit -m "Ignoring y and z in project"

Those files all contain list of GLOBS file patterns to exclude

www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 64/69

Page 68: GIT pour développeur

Git overview and base concepts Getting started with git Working with git References

Ignoring files

Ignoring files: Practice

Exclude your favourite backup extension globally for all yourgit repositories

Exclude .phps locally for your current repositories

Create a cache and log directories and ignore all theircontents for anyone working on the project

www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 65/69

Page 69: GIT pour développeur

Git overview and base concepts Getting started with git Working with git References

Going back to a previous state

Going back to a previous state

www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 66/69

Page 70: GIT pour développeur

Git overview and base concepts Getting started with git Working with git References

Going back to a previous state

Going back to a previous stateRemove a change in staging keeping the working fileunchanged (opposite of add):git reset -- path/to/file

Discard all changes come back to the HEAD revision inrepository:git reset --hard HEAD

Recover a file accidentaly deleted:# recover from HEAD revision in repository

git chekout HEAD path/to/file

# recover from staging area

git checkout -- path/to/file

Repair an error that was commited to the repository. Thiscreates a new commit undoing the change. In this exampleonly undo last commit:git revert HEAD

www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 67/69

Page 71: GIT pour développeur

Git overview and base concepts Getting started with git Working with git References

References

www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 68/69

Page 72: GIT pour développeur

Git overview and base concepts Getting started with git Working with git References

References

Learn git online in 15 minutes on github:http://try.github.io/levels/1/challenges/1

Visual git Cheatsheet:http://ndpsoftware.com/git-cheatsheet.html

Pro Git book: http://git-scm.com/book

Git community book: http://alx.github.io/gitbook/

Git - the simple guide: http://rogerdudler.github.io/git-guide/

git-workflows for agilist:https://github.com/stevenharman/git-workflows

www.opensourceschool.fr – Licence Creative Commons (CC BY-SA 3.0 FR) – 69/69