Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Git basis and gitosis
Search
Yasuhiro Asaka
April 09, 2011
Programming
110
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Git basis and gitosis
Git の基本と gitosis :-)
Yasuhiro Asaka
April 09, 2011
More Decks by Yasuhiro Asaka
See All by Yasuhiro Asaka
Can't emerge, how to do it ?
yasuhiro
2
730
ELOG and Ebuild Phase Hook
yasuhiro
0
680
Git workflow and activity
yasuhiro
2
490
Let's drink homebrew :-)
yasuhiro
1
120
Other Decks in Programming
See All in Programming
代数的データ型って何が嬉しいの? #frontend_phpcon_do
kajitack
8
3.4k
Claspは野良GASの夢をみるか
takter00
0
180
OSもどきOS
arkw
0
540
Developing with AI Agents — Codex, Claude Code & Cowork Practical Guide
x5gtrn
PRO
0
1.3k
肥大化するレガシーコードに立ち向かうためのインターフェース分離と依存の逆転 / JJUG CCC 2026 Spring
hirokunimaeta
0
540
Java × distroless で 軽量なコンテナイメージを / Java on Distroless
contour_gara
0
540
スマートグラスで並列バイブコーディング
hyshu
0
130
決定論的オーケストレーションの設計と実装 / Design and Implementation of Deterministic Orchestration
nrslib
3
1.3k
Javaの型とAI時代に型が大事な理由 / java types and type in AI era
kishida
2
130
過去最大のMCPアップデート! 2026-07-28 RC版の謎に迫る
licux
6
260
タクシーアプリ『GO』の バックエンド開発のおける AI利活用と若者のすべて
pyama86
3
2k
「エンジニアインターン、どうやって取った?」準備のリアルを語るLT会 Progate BAR
akiomatic
0
130
Featured
See All Featured
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
55k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.2k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.5k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
190
Designing for humans not robots
tammielis
254
26k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
KATA
mclloyd
PRO
35
15k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
200
How STYLIGHT went responsive
nonsquared
100
6.2k
Side Projects
sachag
455
43k
Transcript
(JUͷجຊͱ HJUPTJT *UBCBTIJ :BTVIJSP"TBLB
ࣗݾհ v"CPVUNF
:BTVIJSP"TBLBXIPBNJ ‣vϓϩάϥϚ ‣v3VCZ 0CKFDUJWF$ .BD0494FSWFS ‣vখদࡊ͡Ό͕͍͑ΜͲ͏·Ί ‣v"SEVJOP ‣v"QQMF$FSUJGJFE)FMQ%FTL4QFDJBMJTU ‣v3VCZ"TTPDJBUJPO$FSUJGJFE3VCZ1SPHSBNNFS4JMWFS ‣v!HSBVXPFMGDIFO
‣vIUUQXXXHSBVXPFMGDIFOTMBCPSDPN
ٞ v"HFOEB
vHJUPTJTΛ͏ .BD0494FSWFSͰ "DDPVOUɺ3FNPUFSFQPTJUPSZՃ<%FNP> v(JUͷಛ ಛɺجຊػೳ
ಛɺجຊػೳ v(JUͷಛ
ಛ vࢄܕ7$4ɺϩʔΧϧϦϙδτϦɾϒϥϯν vΠϯσοΫε vίϚϯυ͕ଟ͍ ศརෳࡶ vߴ [MJCѹॖɺHJUϓϩτίϧɺϚʔδ தԝूܕ ࢄܕ
ӡ༻ํ๏͍ͩ͠ ରଟ
master vϩʔΧϧϒϥϯν 4JOBUSBͰΈ͔͚ͨྫ POHJUIVC ࣮ݧతͳ ଞͷਓʹӨڹ͠ͳ͍ ϒϥϯνΛ؆୯ʹ࡞ΕΔ ฏߦͨ͠࡞ۀ͕ਐΊΒΕΔ ෳίϛοτʹ·͕ͨΔཧతͳมߋͷ୯ҐϦϦʔε
vΠϯσοΫε ίϛοτͱϫʔΫπϦʔͷதؒʹҐஔ εςʔδϯάΤϦΞͱݺΕΔ εςʔδɾΞϯεςʔδͯ͠ɺίϛοτ͢ΔͨΊͷ༰Λ࡞Δॴ ΠϯσοΫεʹؚ·ΕΔҰ෦ ϋϯΫ ͚ͩΛίϛοτͰ͖Δ $PNNJU *OEFY 8PSLJOHUSFF
HJUBEE HJUDPNNJU
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
vࢄܕͷϫʔΫϑϩʔ ΫϩʔϯϦϞʔτ͔Βྺ࢙͝ͱऔಘ ฤू εςʔδϯάΠϯσοΫεʹՃ ίϛοτϩʔΧϧϦϙδϦه ϓογϡϦϞʔτϦϙδτϦه ϑΣονϦϞʔτͷมߋͷऔಘ ϚʔδϫʔΩϯάπϦʔɺϒϥϯνϚʔδ ϦϙδτϦ࡞ϫʔΩϯάπϦʔͷมߋΛه ϓϧϑΣονͯ͠Ϛʔδ
ϦϞʔτͷมߋऔΓࠐΈ ·ͨ
جຊػೳ (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 # => ϦϞʔτϦϙδτϦ
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ͳͥͱ୭͕ͷه
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'
มߋͷݕHJUCMBNF ྺ࢙ͷॻ͖͑HJUSFCBTF ϫʔΫπϦʔͷมߋऔΓফ͠HJUDIFDLPVU ΠϯσοΫεͷมߋऔΓফ͠HJUSFTFU ίϛοτͷมߋऔΓফ͠HJUSFTFUIBSE ίϛοτͷଧͪফ͠HJUSFWFSU มߋΛҰ࣌ԣʹஔ͍͓ͯ͘HJUTUBTI ϒϥϯνͷϚʔδHJUNFSHFCSBODI໊ ϩʔΧϧϒϥϯν࡞HJUDIFDLPVUCCSBODI໊ ϦϞʔτͷϒϥϯνআHJUQVTI<SFNPUF>CSBODI໊
vΑ͘͏ίϚϯυ vΑ͘͏ϑοΫ QSFDPNNJUϑοΫ ίϛοτͷ༰νΣοΫͳͲ DPNNJUNTHϑοΫ ϝοηʔδͷ౷ҰͳͲ QPTUVQEBUFϑοΫ QVTIΛड͚ͯσϓϩΠͤͨ͞Γ
vଞͷࢄ7$4ͱൺֱϦΫΤετ͍͖ͨͩ·͕ͨ͠ ίϚϯυɺπʔϧͷҧ͍ͦ͋͜Εɺ ϫʔΫϑϩʔ͋Μ·ΓҧΘͳ͍ɻͱࢥ͏ svn͔ΒͷΓସ͑ઌʹbzrΛݕ౼͢ΔͳͲʢ࠷ऴతʹhgʹͳͬͨ‥ʣ IUUQUPHFUUFSDPNMJ ࢄόʔδϣϯཧGit/Mercurial/Bazaarపఈൺֱ IUUQXXXBUNBSLJUDPKQGKBWBSFOTBJEFWUPPM EFWUPPM@IUNM
None
େͳͷπʔϧͷ༏ྼͰͳ͘ Ͳ͏͏͔ ͍͍Θ͚
.BD0494FSWFSΠϯετʔϧ vHJUPTJTΛ͏
త χʔζ vTTIͰηΩϡΞʹ௨৴͍ͨ͠ vެ։ݤͷొ͕ࡶ vγΣϧΞΫηεͤͨ͘͞ͳ͍ vϦϞʔτϦϙδτϦ࡞Λ؆୯ʹ͍ͨ͠ vϦϙδτϦ୯ҐͰΞΫηεݖΛઃఆ͍ͨ͠
త χʔζ vTTIͰηΩϡΞʹ௨৴͍ͨ͠ vެ։ݤͷొ͕ࡶ vγΣϧΞΫηεͤͨ͘͞ͳ͍ vϦϞʔτϦϙδτϦ࡞Λ؆୯ʹ͍ͨ͠ vϦϙδτϦ୯ҐͰΞΫηεݖΛઃఆ͍ͨ͠ ˠHJUPTJTBENJOHJUͰཧ
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
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
Awesome Terminal - bash - ⌘ 1 $ exit logout
[My LT completed] # ͋Γ͕ͱ͏͍͟͝·ͨ͠