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
740
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
jsmini JavaScript Engine を作ってみた話
yosuke_furukawa
PRO
0
280
php-fpmのプロセスが枯渇した日-調査・対処・そして本当にやるべきだったこと-
shibuchaaaan
0
180
AWS DevOps AgentのAzure接続機能を検証して見えた活用法/Use Cases Verified for the AWS DevOps Agent's Azure Connectivity Feature
masakiokuda
0
180
<title><a id="</title>君はこのHTMLをパースできるか"></a></title> #雑LT_study
pizzacat83
0
120
Haskell/Servantを通してWebミドルウェアを捉え直す
pizzacat83
1
630
Embedded SREと共に達成した会員管理システムのAWS移行 - SRE NEXT 2026 ランチスポンサーセッション
niftycorp
PRO
1
3.3k
作るコストが小さくなった時代 幸せに働くために改めて考えたいこと 〜エンジニアとして価値を出し続けるために注視している二分野〜
yuppeeng
0
140
PHP初心者セッション2026 〜生成AIでは見えない裏側を知る:今だからLAMPを通して仕組みを学ぶ〜
kashioka
0
750
Laravelで学ぶ Webアプリケーションチューニング入門/web_application_tuning_101
hanhan1978
4
1.5k
アルゴリズムは何を圧縮しているのか ─ Haskell から育った「圧縮代数」というメンタルモデル
naoya
16
3.7k
Google Apps Script で Ruby を動かす
kawahara
0
120
変わらないものが、変わるものを決める — 意図駆動開発 × イベントソーシング × イミュータブル | What Doesn't Change Decides What Can — IDD × Event Sourcing × Immutability
tomohisa
0
840
Featured
See All Featured
Art, The Web, and Tiny UX
lynnandtonic
304
22k
Making the Leap to Tech Lead
cromwellryan
135
10k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
420
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.3k
A Soul's Torment
seathinner
6
3.1k
The Spectacular Lies of Maps
axbom
PRO
1
880
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
670
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
410
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
460
Scaling GitHub
holman
464
140k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
230
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
310
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] # ͋Γ͕ͱ͏͍͟͝·ͨ͠