This is an old revision of the document!


GIT

Introduction

Git is a source code version control system. Unlike Subversion (SVN) and CVS it is distributed, so it allows better local source code management (you can commit, branch and so on on your local repository before pushing it on the public repository; you can also never push it on any public repository).

Cheat sheet

Configuration

  • ~/.gitconfig
    [user]
      name = Name Firstname
      email = <firstname.name@laas.fr>
    [core]
      editor = /usr/bin/myeditor

Local repository management

  • % git init : create a local git repository for your project in your folder
  • % git add <files|dirs> (or just git add . for all files) : add new or modified files to the index
  • % git commit [-m <msg>] : commit the changes of the index to the repository
  • % git commit -a : commit the changes of the working files to the repository
  • % git tag -a <tag-name> [-m <msg>] : add a tag
  • % git reset –hard [<commit-hash>] : restore the working files to the latest commit, or given commit
  • % git revert <commit-hash> : revert the given commit (<commit> can be just the beginning of its hashcode)
  • % git checkout <file> : restore a working file to the last commited version

Branches

  • % git branch <branch-name> : create a new branch
  • % git checkout <branch-name> : switch to the given branch
  • % git branch : list available branches
  • % git branch -D <branch-name> : delete the given branch
  • % git merge <branch-name> : merge current branch with the given branch
  • % git cherry-pick <commit-hash> : apply the changes introduced by a given commit to the current branch

Collaborative repository management

  • % git clone <repo-addr> : copy the distant repository (<repo-addr> can be “http:<repo>” or “ssh:<user>@<repo>”)
  • % git pull <repo-addr> : update from the distant repository (fetch and merge)
  • % git push <repo-addr> : send to the distant repository (merge)

Info

  • % git status : show the status of the repository and the index
  • % git log [–stat|-p] [<branch-name>] : show the history of modifications
  • % git diff [-w] : show differences between working files and index (-w ignores whitespace changes)
  • % git diff –cached : show differences between index and repository
  • % git diff <commit-hash> <commit-hash> : show differences between two arbitrary commits
  • % git diff [options] > <file-name> : save the patch to a file
  • % git blame <file> : show what revision and author last modified each line of the file
software/git.1227117161.txt.gz · Last modified: 2013/09/19 16:43 (external edit)
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0