===== Basic git. Interactive. ===== The lecture is scheduled on Day 1, Tuesday morning. Lecturers: Emanuele Olivetti and Rike-Benjamin Schuppner. ==== Course Material ==== Outline of the lecture and demos: * Version Control: **git**. * Scenario 1: single developer, local repository. * Demo single+local * Scenario 2: Team of developers, central remote repository. Minimalistic. * Demo multi+remote * Extras: git branch, how to set up central repo. Files: * {{:materials:emanuele_olivetti_autumn_school_2010_git.pdf|PDF slides of the lecture}} * {{:materials:demo_git_single_local.txt| git demo, scenario 1}} * {{:materials:demo_git_multi_remote.txt| git demo, scenario 2}} [[version_control_exercises|Exercises]] are on a separate page ==== Accounts ==== Git repositories to be used during the school are hosted on escher.fuw.edu.pl. Every students has an account which can be used only for repository access (see [[:accounts|the list of login names]]). Authentication is performed with the ssh public/private key-pair installed on every USB stick. You don't need any special setup: when you run git clone @escher.fuw.edu.pl:/git/autumnschool/shared or git clone @escher.fuw.edu.pl:personal.git ssh will use the key automatically. ==== Weblinks and hints ==== * [[http://book.git-scm.com/index.html|The git community book]] For more control about what files to add to the staging area, it is often practical to use a graphical program. ‘git gui’ usually comes with the distribution and allows for easily picking the files you want to include in the next commit. (There is a share of other graphical tools for any OS available.) For a common development workflow, have a look at [[http://nvie.com/git-model|“A successful Git branching model”]] and there is also a streamlined set of commands especially for this workflow which automatically takes care of switching the branches easily. [[http://jeffkreeftmeijer.com/2010/why-arent-you-using-git-flow/|“Why aren’t you using git-flow?”]] → [[http://github.com/nvie/gitflow]] ==== Additional notes ==== * [[http://en.wikipedia.org/wiki/File_system_permissions#Octal_notation|An explanation of Unix file permissions]]