Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥

Git basis and gitosis

Git basis and gitosis

Git の基本と gitosis :-)

Yasuhiro Asaka

April 09, 2011
Tweet

More Decks by Yasuhiro Asaka

Other Decks in Programming

Transcript

  1. Awesome Terminal - bash - ⌘ 1 $ mkdir test

    && cd test $ git init # => ॳظԽ Initialized empty Git repository in /path/to/test/.git/ $ echo test > test.txt $ git status # => ঢ়ଶͷ֬ೝ # On branch master # # Initial commit # # Untracked files: # (use "git add <file>..." to include in what will be committed) # # test.txt nothing added to commit but untracked files present (use "git add" to track) $ git add -A # => εςʔδϯά $ git status # => ঢ়ଶͷ֬ೝ # On branch master # # Initial commit # # Changes to be committed: # (use "git rm --cached <file>..." to unstage) # # new file: test.txt # $ git commit -m ‘created test.txt’ -m ‘initial commit !’ # => ίϛοτ [master (root-commit) a7d81b8] created test.txt 1 files changed, 1 insertions(+), 0 deletions(-) create mode 100644 test.txt
  2. جຊػೳ (JUʹݶΒͣ v࿦ཧతͳෳ਺ϑΝΠϧʹ·͕ͨΔมߋͷه࿥ vҎલͷίϛοτʹ໭Δ vมߋཤྺΛௐ΂Δ vͳͥͱ୭͕ͷه࿥ Awesome Terminal - bash

    - ⌘ 1 $ git config -l # => svn info ʹ૬౰ user.name=grauwoelfchen [email protected] color.ui=auto # => Χϥʔදࣔ core.autocrlf=input # => ίϛοτ࣌ʹվߦίʔυΛLFʹἧ͑Δ core.excludesfile=/Users/grauwoelfchen/.gitexclude # => ڞ௨ͷແࢹઃఆϑΝΠϧ core.repositoryformatversion=0 core.filemode=true core.bare=false core.logallrefupdates=true core.ignorecase=true remote.origin.fetch=+refs/heads/*:refs/remotes/origin/* [email protected]:foo.git # => ϦϞʔτϦϙδτϦ remote.moxssg.fetch=+refs/heads/*:refs/remotes/moxssg/* [email protected]:foo.git # => ϦϞʔτϦϙδτϦ
  3. Awesome Terminal - bash - ⌘ 1 $ git log

    -3 -p Gemfile # => ‘Gemfile’ ͱ͍͏ϑΝΠϧΛѻͬͨίϛοτͷ಺༰Λ3ͭ commit 9d3f4bc38f2d89d98567af017cf0327626e4effa Author: grauwoelfchen <[email protected]> Date: Sun Apr 3 23:39:49 2011 +0900 specified version of maruku gem. diff --git a/Gemfile b/Gemfile index 99fa1f0..df7bac2 100644 --- a/Gemfile +++ b/Gemfile @@ -7,7 +7,7 @@ gem 'bson_ext', '~> 1.2' gem 'data_mapper' gem 'mongoid_taggable' gem 'will_paginate', '~> 3.0.pre2' -gem 'maruku' +gem 'maruku', '~> 0.6.0' group :development do gem 'rspec', '2.5.0' commit 878ecc909708a46dfc1c85b23ed2c344b5343032 : vมߋཤྺΛௐ΂Δ vͳͥͱ୭͕ͷه࿥
  4. Awesome Terminal - bash - ⌘ 1 # ࢦఆͨ͠ϑΝΠϧʹؔ࿈͢Δίϛοτ਺Λௐ΂Δ $

    git rev-list --all Gemfile | wc -l 6 # ࢦఆͨ͠ϑΝΠϧͷ֤ߦͷมߋ͕Ͳͷίϛοτ͔Β͖͔ͨΛௐ΂Δ $ git blame Gemfile 497c0e86 (jobs 2011-03-09 11:57:22 +0900 1) source :gemcutter 497c0e86 (jobs 2011-03-09 11:57:22 +0900 2) 878ecc90 (jobs 2011-03-22 03:20:17 +0900 3) gem 'sinatra', '~> 1.2.0' 497c0e86 (jobs 2011-03-09 11:57:22 +0900 4) gem 'haml', '3.0.25' 497c0e86 (jobs 2011-03-09 11:57:22 +0900 5) gem 'mongoid', '2.0.0.rc.7' d2560ba3 (jobs 2011-03-21 11:59:52 +0900 6) gem 'bson_ext', '~> 1.2' # ಛఆͷϑΝΠϧʹ͓͚Δɺ͋ΔίϛοτͰͷมߋ಺༰Λௐ΂Δ $ git show HEAD~3 Gemfile commit 9d3f4bc38f2d89d98567af017cf0327626e4effa Author: grauwoelfchen <[email protected]> Date: Sun Apr 3 23:39:49 2011 +0900 specified version of maruku gem. diff --git a/Gemfile b/Gemfile index 99fa1f0..df7bac2 100644 --- a/Gemfile +++ b/Gemfile @@ -7,7 +7,7 @@ gem 'bson_ext', '~> 1.2' gem 'data_mapper' -gem 'maruku' +gem 'maruku', '~> 0.6.0'
  5. vIPNFHJU͕6TFSTHJUʹͳΔ v6TFSTHJUCBTISDͰHJU ίϚϯυ ΁ύε௨͢ v4FSWFS"ENJOͰHJUϢʔβʹ44)ΛڐՄ 0494FSWFSͷ৔߹ Awesome Terminal - bash

    - ⌘ 1 # gitosis Πϯετʔϧ $ python --version Python 2.5.1 $ git clone git://eagain.net/gitosis.git $ cd gitosis $ sudo python setup.py install ... # Ϣʔβ࡞੒ # dscl . -create /Users/git # dscl . -create /Users/git UserShell /bin/bash # dscl . -create /Users/git RealName "git" # dscl . -create /Users/git NFSHomeDirectory /Users/git # dscl . -create /Users/git UniqueID xxx # dscl . -create /Users/git PrimaryGroupID xxx # createhomedir -b -u git
  6. Awesome Terminal - bash - ⌘ 1 # ΋͢͠Ͱʹ؅ཧ͍ͯ͠ΔϦϙδτϦ͕ͨͪͲ͔͜ʹ͋Ε͹ $

    ln -s /srv/repos/git /Users/git/repositories $ sudo chown -R git /Users/git/repositories # ϩʔΧϧͰ (؅ཧऀͷެ։伴Λసૹ͓ͯ͘͠) $ scp ~/.ssh/id_rsa.pub [email protected]:/tmp/git # => ϩʔΧϧϚγϯ ... # gitosis ॳظԽ $ sudo -H -u git gitosis-init < /path/to/id_rsa.pub Initialized empty Git repository in /srv/repos/git/gitosis-admin.git/ Reinitialized existing Git repository in /srv/repos/git/gitosis-admin.git/ ... # post-update ϑοΫͷΞΫηεݖमਖ਼ $ sudo chmod 755 /srv/repos/git/gitosis-admin.git/hooks/post-updat # git ίϚϯυ΁ͷ PATH Λ௨͢ $ touch ~/.bashrc $ echo PATH=/usr/local/bin:\$PATH > .bashrc # => brew install git ͍ͯͨ࣌͠ $ echo export PATH >> .bashrc # Πϯετʔϧ׬ྃ !! # ಈ࡞֬ೝɺϢʔβ௥ՃɺϦϙδτϦ௥ՃͷσϞ $ sudo demo
  7. Awesome Terminal - bash - ⌘ 1 $ exit logout

    [My LT completed] # ͋Γ͕ͱ͏͍͟͝·ͨ͠