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
jQueryをバージョンアップする前に使いたいjQuery Migrate
matsuo_atsushi
0
630
Even G2とAWSで推しのエージェントを召喚しよう!
har1101
1
140
Snowflake Summitでの新機能 CoCo / CoWork / snowflake-summit-2026-overall-what-new-coco
tatsuhiro
1
210
AI がコードを書く時代における新卒エンジニアの仕事風景 (2026) / New Graduate Engineers in the Era of AI Coding (2026)
sushichan044
0
190
吝嗇家のためのAI活用 / AI development for miser - ChatGPT + Issue Driven Development
tooppoo
0
170
Javaの型とAI時代に型が大事な理由 / java types and type in AI era
kishida
2
170
Signal Forms: Details & Live Coding @enterJS 2026 in Mannheim
manfredsteyer
PRO
0
210
Observability in Practice:Grafana 與 Edge Device SRE 的那些事
blueswen
0
190
なぜ型を書くのか? TSKaigi2026で改めて考える #tskaigi_smarthr
kajitack
0
190
TSKaigi Night Talks 2026_TypeScriptでサプライチェーンの整合性を型に閉じ込める
geekplus_tech
0
430
Dataformのリポジトリを立ち上げるときにまずやること / dataform-day0-2026
snhryt
0
210
どこまでゆるくて許されるのか
tk3fftk
0
300
Featured
See All Featured
Prompt Engineering for Job Search
mfonobong
0
360
ラッコキーワード サービス紹介資料
rakko
1
3.8M
Test your architecture with Archunit
thirion
1
2.3k
Evolving SEO for Evolving Search Engines
ryanjones
0
230
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
490
Ethics towards AI in product and experience design
skipperchong
2
320
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.3k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
230
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
67
56k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
2
280
How to build a perfect <img>
jonoalderson
1
5.8k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
250
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] # ͋Γ͕ͱ͏͍͟͝·ͨ͠