(git, mercurial, bazaar, bitkeeper, darcs)
Avec Homebrew brew install git
Ok mais a quoi ça ressemble ?http://git-scm.com/book/fr/Personnalisation-de-Git-Configuration-de-Git
$ git config --global user.name "John Doe" $ git config --global user.email johndoe@example.com
$ git config --global color.ui true
$ git --help $ git add --help $ git <sub-command> --help
$ git init
$ git clone https://github.com/p-j/isep-git.gitPar défaut, cela créera un dossier isep-git à l'endroit où vous avez executé la commande. Ce dossier contiendra votre copie du dépôt.
$ git clone https://github.com/p-j/isep-git.git $ git fetch --allPermet de récupérer toutes les branches et pas uniquement la branche courrante (ie: master par défaut)
$ git add *.html $ git add README.md $ git commit -m 'First commit'
$ git commit -am 'First commit'
$ git status
$ git rm --cached file.html
$ git rm file.html
Bien que git ne se préocuppe que du contenu, il y a une commade pour déplacer des fichiers.
$ git mv file1 file2
Qui est l'équivalent de
$ mv file1 file2 $ git rm file1 $ git add file2
$ git log
$ git log --since=2.weeks $ git log --since="2 years 1 day 3 minutes ago"
$ git log --pretty=oneline --decorate --graph
$ git diff
$ git diff --cached
$ git diff 7be56a git diff HEAD^
$ git show
$ git show 7be56a git show HEAD^
$ git commit --amend
$ git reset HEAD file.html
$ git checkout -- file.html
$ git revert 7be56a
$ git tag v0.1.0
$ git tag -a v0.1.0 -m 'Version 0.1.0'Un tag est simplement un commit avec un nom un peu plus sympa qu'un hash. On s'en sert pour marquer des versions stable ou des points important dans le développement qui serviront de références.
$ cat .gitignore .DS_Store .svn log/*.log tmp/** node_modules/
$ git remote -v origin git@github.com:p-j/isep-fsnp.git (fetch) origin git@github.com:p-j/isep-fsnp.git (push)
$ git push <remote> <rbranch>
$ git push -u <remote> <rbranch>
$ git push
$ git pull [<remote> <rbranch>]
Equivalent de
$ git fetch <remote> $ git merge <rbranch>
Les branches sont des "pointeurs" vers des commits.
$ git merge iss53 Auto-merging index.html CONFLICT (content): Merge conflict in index.html Automatic merge failed; fix conflicts and then commit the result.
$ git add index.html $ git commit
$ git branch iss53
$ git checkout -b iss53 master
$ git checkout iss53
$ git branch -d iss53
$ git branch iss53 * master testing
$ git branch -v iss53 93b412c fix javascript issue * master 7a98805 Merge branch 'iss53' testing 782fd34 add scott to the author list in the readmes
$ git branch --merged iss53 * master
$ git branch --no-merged testing
$ git stash $ git stash pop $ git stash list $ git stash apply $ git stash drop $ git stash clearUtilisez git stash quand vous voulez enregistrer l'état actuel du répertoire de travail et de l'index, et revenir à un répertoire de travail propre. La commande enregistre vos modifications locales à part et mets à jour le répertoire de travail pour correspondre à la HEAD. Les modifications mise de côté par cette commande peuvent être listés avec git stash list, inspecté avec git stash show, et restauré (potentiellement par dessus un autre commit) avec git stash apply. git stash sans aucun argument équivaut à git stash save. Une stash est par défaut répertorié comme «WIP sur branchname ...», mais vous pouvez donner un message plus explicite via la ligne de commande lorsque vous en créez un.
Très inspiré de cette présentation de Danilo Bargen