Suche senden
Hochladen
Gitのすすめ
•
7 gefällt mir
•
3,301 views
Yuichi Yoshida
Folgen
Melden
Teilen
Melden
Teilen
1 von 128
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
Eucalyptus 3.1 and next in #occpv
Eucalyptus 3.1 and next in #occpv
Osamu Habuka
Jaws20140117
Jaws20140117
Terui Masashi
20141115グンマーのヤボー
20141115グンマーのヤボー
gurezo
10分で分かるr言語入門ver2.3
10分で分かるr言語入門ver2.3
Nobuaki Oshiro
PHP使いから見たRuby(Talking about PHP & Ruby)
PHP使いから見たRuby(Talking about PHP & Ruby)
mochiko AsTech
Vanishing Component Analysisの試作(補足)
Vanishing Component Analysisの試作(補足)
Hiroshi Tsukahara
Information extraction 1
Information extraction 1
Hiroshi Tsukahara
Notes on the low rank matrix approximation of kernel
Notes on the low rank matrix approximation of kernel
Hiroshi Tsukahara
Empfohlen
Eucalyptus 3.1 and next in #occpv
Eucalyptus 3.1 and next in #occpv
Osamu Habuka
Jaws20140117
Jaws20140117
Terui Masashi
20141115グンマーのヤボー
20141115グンマーのヤボー
gurezo
10分で分かるr言語入門ver2.3
10分で分かるr言語入門ver2.3
Nobuaki Oshiro
PHP使いから見たRuby(Talking about PHP & Ruby)
PHP使いから見たRuby(Talking about PHP & Ruby)
mochiko AsTech
Vanishing Component Analysisの試作(補足)
Vanishing Component Analysisの試作(補足)
Hiroshi Tsukahara
Information extraction 1
Information extraction 1
Hiroshi Tsukahara
Notes on the low rank matrix approximation of kernel
Notes on the low rank matrix approximation of kernel
Hiroshi Tsukahara
DSIRNLP06 Nested Pitman-Yor Language Model
DSIRNLP06 Nested Pitman-Yor Language Model
Kei Uchiumi
Vanishing Component Analysisの試作と簡単な実験
Vanishing Component Analysisの試作と簡単な実験
Hiroshi Tsukahara
Pylm public
Pylm public
Kei Uchiumi
Dsirnlp#7
Dsirnlp#7
Kei Uchiumi
Sparse Isotropic Hashing
Sparse Isotropic Hashing
Ikuro Sato
Go-ICP: グローバル最適(Globally optimal) なICPの解説
Go-ICP: グローバル最適(Globally optimal) なICPの解説
Yusuke Sekikawa
FLAT CAM: Replacing Lenses with Masks and Computationの解説
FLAT CAM: Replacing Lenses with Masks and Computationの解説
Yusuke Sekikawa
Deep Learning Chapter12
Deep Learning Chapter12
Kei Uchiumi
Extreme Learning Machine
Extreme Learning Machine
Yoshiaki Sakakura
Halide, Darkroom - 並列化のためのソフトウェア・研究
Halide, Darkroom - 並列化のためのソフトウェア・研究
Yuichi Yoshida
RNNLM
RNNLM
Kei Uchiumi
論文紹介:Practical bayesian optimization of machine learning algorithms(nips2012)
論文紹介:Practical bayesian optimization of machine learning algorithms(nips2012)
Keisuke Uto
Nl220 Pitman-Yor Hidden Semi Markov Model
Nl220 Pitman-Yor Hidden Semi Markov Model
Kei Uchiumi
ディープラーニングの車載応用に向けて
ディープラーニングの車載応用に向けて
Ikuro Sato
猫にはわからないGit講座
猫にはわからないGit講座
Yusei Yamanaka
Windows Store アプリをuniversal にして申請する手順
Windows Store アプリをuniversal にして申請する手順
Osamu Masutani
Sigir2013 retrieval models-and_ranking_i_pub
Sigir2013 retrieval models-and_ranking_i_pub
Kei Uchiumi
Stochastic Process Overview (hypothesis)
Stochastic Process Overview (hypothesis)
Yoshiaki Sakakura
Windows HPC Server 講習会 第2回 開発編
Windows HPC Server 講習会 第2回 開発編
Osamu Masutani
Windows HPC Server 講習会 第1回 導入編 1/2
Windows HPC Server 講習会 第1回 導入編 1/2
Osamu Masutani
モテる! Node.js でつくる twitter ボット制作
モテる! Node.js でつくる twitter ボット制作
hecomi
Title
Title
stucon
Weitere ähnliche Inhalte
Andere mochten auch
DSIRNLP06 Nested Pitman-Yor Language Model
DSIRNLP06 Nested Pitman-Yor Language Model
Kei Uchiumi
Vanishing Component Analysisの試作と簡単な実験
Vanishing Component Analysisの試作と簡単な実験
Hiroshi Tsukahara
Pylm public
Pylm public
Kei Uchiumi
Dsirnlp#7
Dsirnlp#7
Kei Uchiumi
Sparse Isotropic Hashing
Sparse Isotropic Hashing
Ikuro Sato
Go-ICP: グローバル最適(Globally optimal) なICPの解説
Go-ICP: グローバル最適(Globally optimal) なICPの解説
Yusuke Sekikawa
FLAT CAM: Replacing Lenses with Masks and Computationの解説
FLAT CAM: Replacing Lenses with Masks and Computationの解説
Yusuke Sekikawa
Deep Learning Chapter12
Deep Learning Chapter12
Kei Uchiumi
Extreme Learning Machine
Extreme Learning Machine
Yoshiaki Sakakura
Halide, Darkroom - 並列化のためのソフトウェア・研究
Halide, Darkroom - 並列化のためのソフトウェア・研究
Yuichi Yoshida
RNNLM
RNNLM
Kei Uchiumi
論文紹介:Practical bayesian optimization of machine learning algorithms(nips2012)
論文紹介:Practical bayesian optimization of machine learning algorithms(nips2012)
Keisuke Uto
Nl220 Pitman-Yor Hidden Semi Markov Model
Nl220 Pitman-Yor Hidden Semi Markov Model
Kei Uchiumi
ディープラーニングの車載応用に向けて
ディープラーニングの車載応用に向けて
Ikuro Sato
猫にはわからないGit講座
猫にはわからないGit講座
Yusei Yamanaka
Windows Store アプリをuniversal にして申請する手順
Windows Store アプリをuniversal にして申請する手順
Osamu Masutani
Sigir2013 retrieval models-and_ranking_i_pub
Sigir2013 retrieval models-and_ranking_i_pub
Kei Uchiumi
Stochastic Process Overview (hypothesis)
Stochastic Process Overview (hypothesis)
Yoshiaki Sakakura
Windows HPC Server 講習会 第2回 開発編
Windows HPC Server 講習会 第2回 開発編
Osamu Masutani
Windows HPC Server 講習会 第1回 導入編 1/2
Windows HPC Server 講習会 第1回 導入編 1/2
Osamu Masutani
Andere mochten auch
(20)
DSIRNLP06 Nested Pitman-Yor Language Model
DSIRNLP06 Nested Pitman-Yor Language Model
Vanishing Component Analysisの試作と簡単な実験
Vanishing Component Analysisの試作と簡単な実験
Pylm public
Pylm public
Dsirnlp#7
Dsirnlp#7
Sparse Isotropic Hashing
Sparse Isotropic Hashing
Go-ICP: グローバル最適(Globally optimal) なICPの解説
Go-ICP: グローバル最適(Globally optimal) なICPの解説
FLAT CAM: Replacing Lenses with Masks and Computationの解説
FLAT CAM: Replacing Lenses with Masks and Computationの解説
Deep Learning Chapter12
Deep Learning Chapter12
Extreme Learning Machine
Extreme Learning Machine
Halide, Darkroom - 並列化のためのソフトウェア・研究
Halide, Darkroom - 並列化のためのソフトウェア・研究
RNNLM
RNNLM
論文紹介:Practical bayesian optimization of machine learning algorithms(nips2012)
論文紹介:Practical bayesian optimization of machine learning algorithms(nips2012)
Nl220 Pitman-Yor Hidden Semi Markov Model
Nl220 Pitman-Yor Hidden Semi Markov Model
ディープラーニングの車載応用に向けて
ディープラーニングの車載応用に向けて
猫にはわからないGit講座
猫にはわからないGit講座
Windows Store アプリをuniversal にして申請する手順
Windows Store アプリをuniversal にして申請する手順
Sigir2013 retrieval models-and_ranking_i_pub
Sigir2013 retrieval models-and_ranking_i_pub
Stochastic Process Overview (hypothesis)
Stochastic Process Overview (hypothesis)
Windows HPC Server 講習会 第2回 開発編
Windows HPC Server 講習会 第2回 開発編
Windows HPC Server 講習会 第1回 導入編 1/2
Windows HPC Server 講習会 第1回 導入編 1/2
Ähnlich wie Gitのすすめ
モテる! Node.js でつくる twitter ボット制作
モテる! Node.js でつくる twitter ボット制作
hecomi
Title
Title
stucon
やる夫で学ぶマーケティング
やる夫で学ぶマーケティング
logch admin
UnityとnodeとMMDと
UnityとnodeとMMDと
sters
ぼくのかんがえたふつうのあんどろいどかいはつ
ぼくのかんがえたふつうのあんどろいどかいはつ
Yukiya Nakagawa
オブジェクト指向プログラミング再入門
オブジェクト指向プログラミング再入門
Ryo Miyake
【TDDBC2.1】やる夫で学ぶTDD
【TDDBC2.1】やる夫で学ぶTDD
Kohki Miki
ゆとりがErlangを始めるようです
ゆとりがErlangを始めるようです
sleepy_yoshi
about Eucalyptus 3.1 in OSC 2012 Tokyo/Fall
about Eucalyptus 3.1 in OSC 2012 Tokyo/Fall
Osamu Habuka
Source treeで始めるgit
Source treeで始めるgit
Satoshi Kamigaki
やるおがtriphone HMMを作るようです
やるおがtriphone HMMを作るようです
Shinya Shimizu
tnct.Seminar9.03#1
tnct.Seminar9.03#1
Daichi Onodera
モダンでもなく reactでもなく フロントエンドでもなく 開発でもない話
モダンでもなく reactでもなく フロントエンドでもなく 開発でもない話
Tomoo Amano
IronRuby on Silverlight っておいしいの?
IronRuby on Silverlight っておいしいの?
terurou
Dev camp25 lt
Dev camp25 lt
Jun Hosokawa
201005 Debian/つくらぐ勉強会 lightning talk
201005 Debian/つくらぐ勉強会 lightning talk
Hideki Yamane
ぎっとの「ぎ」
ぎっとの「ぎ」
ke-m kamekoopa
タイル型ウィンドウマネージャのススメ
タイル型ウィンドウマネージャのススメ
Takuto Matsuu
FFRK cocos2d xレイヤーの最適化
FFRK cocos2d xレイヤーの最適化
dena_study
出張ヒストリア ブループリントを書くにあたって大切なこと
出張ヒストリア ブループリントを書くにあたって大切なこと
historia_Inc
Ähnlich wie Gitのすすめ
(20)
モテる! Node.js でつくる twitter ボット制作
モテる! Node.js でつくる twitter ボット制作
Title
Title
やる夫で学ぶマーケティング
やる夫で学ぶマーケティング
UnityとnodeとMMDと
UnityとnodeとMMDと
ぼくのかんがえたふつうのあんどろいどかいはつ
ぼくのかんがえたふつうのあんどろいどかいはつ
オブジェクト指向プログラミング再入門
オブジェクト指向プログラミング再入門
【TDDBC2.1】やる夫で学ぶTDD
【TDDBC2.1】やる夫で学ぶTDD
ゆとりがErlangを始めるようです
ゆとりがErlangを始めるようです
about Eucalyptus 3.1 in OSC 2012 Tokyo/Fall
about Eucalyptus 3.1 in OSC 2012 Tokyo/Fall
Source treeで始めるgit
Source treeで始めるgit
やるおがtriphone HMMを作るようです
やるおがtriphone HMMを作るようです
tnct.Seminar9.03#1
tnct.Seminar9.03#1
モダンでもなく reactでもなく フロントエンドでもなく 開発でもない話
モダンでもなく reactでもなく フロントエンドでもなく 開発でもない話
IronRuby on Silverlight っておいしいの?
IronRuby on Silverlight っておいしいの?
Dev camp25 lt
Dev camp25 lt
201005 Debian/つくらぐ勉強会 lightning talk
201005 Debian/つくらぐ勉強会 lightning talk
ぎっとの「ぎ」
ぎっとの「ぎ」
タイル型ウィンドウマネージャのススメ
タイル型ウィンドウマネージャのススメ
FFRK cocos2d xレイヤーの最適化
FFRK cocos2d xレイヤーの最適化
出張ヒストリア ブループリントを書くにあたって大切なこと
出張ヒストリア ブループリントを書くにあたって大切なこと
Mehr von Yuichi Yoshida
Swift 2 (& lldb) シンポジウム
Swift 2 (& lldb) シンポジウム
Yuichi Yoshida
Swift 2 (& lldb) シンポジウム
Swift 2 (& lldb) シンポジウム
Yuichi Yoshida
Swift 2 (& lldb) シンポジウム
Swift 2 (& lldb) シンポジウム
Yuichi Yoshida
Swiftで多層型で戻り値を返すことの是非と雑談
Swiftで多層型で戻り値を返すことの是非と雑談
Yuichi Yoshida
Swift - Result<t>型で結果を返すのは邪道か,王道か
Swift - Result<t>型で結果を返すのは邪道か,王道か
Yuichi Yoshida
Machine Learning : The high interest credit card of technical debt
Machine Learning : The high interest credit card of technical debt
Yuichi Yoshida
キーボードアプリとSketchのススメ
キーボードアプリとSketchのススメ
Yuichi Yoshida
Handoff from Safari
Handoff from Safari
Yuichi Yoshida
Getting started with Handoff
Getting started with Handoff
Yuichi Yoshida
Getting started with CloudKit
Getting started with CloudKit
Yuichi Yoshida
Handoffは動かない〜これから役立たないバッドノウハウ集
Handoffは動かない〜これから役立たないバッドノウハウ集
Yuichi Yoshida
UIToolbarの同時タッチを防ぐ
UIToolbarの同時タッチを防ぐ
Yuichi Yoshida
UZTextView, UZMultilayeredPopoverControllerの解説
UZTextView, UZMultilayeredPopoverControllerの解説
Yuichi Yoshida
64bit化してみた話
64bit化してみた話
Yuichi Yoshida
Mehr von Yuichi Yoshida
(14)
Swift 2 (& lldb) シンポジウム
Swift 2 (& lldb) シンポジウム
Swift 2 (& lldb) シンポジウム
Swift 2 (& lldb) シンポジウム
Swift 2 (& lldb) シンポジウム
Swift 2 (& lldb) シンポジウム
Swiftで多層型で戻り値を返すことの是非と雑談
Swiftで多層型で戻り値を返すことの是非と雑談
Swift - Result<t>型で結果を返すのは邪道か,王道か
Swift - Result<t>型で結果を返すのは邪道か,王道か
Machine Learning : The high interest credit card of technical debt
Machine Learning : The high interest credit card of technical debt
キーボードアプリとSketchのススメ
キーボードアプリとSketchのススメ
Handoff from Safari
Handoff from Safari
Getting started with Handoff
Getting started with Handoff
Getting started with CloudKit
Getting started with CloudKit
Handoffは動かない〜これから役立たないバッドノウハウ集
Handoffは動かない〜これから役立たないバッドノウハウ集
UIToolbarの同時タッチを防ぐ
UIToolbarの同時タッチを防ぐ
UZTextView, UZMultilayeredPopoverControllerの解説
UZTextView, UZMultilayeredPopoverControllerの解説
64bit化してみた話
64bit化してみた話
Gitのすすめ
1.
gitのすすめ デンソーアイティーラボラトリ 吉田悠一
2.
プレゼンで出てくる話はすべてフィクションです。 実在の人物や団体などとはたぶん関係ありません。
3.
subversion?
____ / \ /\ キリッ . / (ー) (ー)\ / ⌒(__人__)⌒ \ | |r┬-| | さて,今日もsubversionからチェックアウトして \ `ー'´ / コーディングだお!! ノ \ /´ ヽ
4.
subversion?
___ / \ /ノ \ u. \ !? / (●) (●) \ | (__人__) u. | クスクス> \ u.` ⌒´ / ノ \ /´ ヽ
5.
subversion? ____ <クスクス /
\!?? / u ノ \ / u (●) \ | (__人__)| \ u .` ⌒/ ノ \ /´ ヽ
6.
git・・・・? svn?? svn 自重
7.
って言われても ____
/ \ / ─ ─ \ / (○) (○) \ SVNじゃだめなのかお… | (__人__) | \ ` ⌒´ /
8.
/ ̄ ̄\ / _ノ \ |
( ●)(●) . | (__人__) いまだにsvnか・・・・・ | ` ⌒´ノ 日付でファイルが増えていくよりマシだが・・・ . | } . ヽ } エンジニアならgitを使うだろJK ヽ ノ \ / く \ \ | \ \ \ | |ヽ、二⌒)、 \
9.
そんなこんなで ____
/⌒ ⌒\ /( ●) (●)\ /::::::⌒(__人__)⌒:::::\ やらない夫! | |r┬-| | gitについてやる夫に教えろお! \ `ー'´ /
10.
/ ̄ ̄\ / _ノ \ |
( ●)(●) . | (__人__) まぁいいだろう・・・・ | ` ⌒´ノ . | } . ヽ } (このプレゼン作るのに2時間かかったんだが) ヽ ノ \ / く \ \ | \ \ \ | |ヽ、二⌒)、 \
11.
git • 分散型ソースコード管理ツール • SVN,
CVSとは違うよ • リーナスさんがLinuxカーネルの開発を進めるた めに開発
12.
git理解への早道 • まずコンセプトを理解する • 仕様,コマンドから始めると死ねる
13.
そんなこんなで / ̄ ̄\ /ノ( ゝ
、_,ノヽ r'´ ゙ヽ /`ヽ ____ | ⌒(( ●)(●) ヽ ヽ从从/ / \ /\ . | (__人__) /⌒l \ \/ /て (●)liil(●) ノ( \ | ` ⌒´ノ |`'''| ∑ ヽ/ / そ / (__人__) ⌒ \ / ⌒ヽ } | | ,)/ / \ く | |!!il|!|!l| | コンセプトとかいいからさっさと / へ \ }__/ / / /\ \ \i⌒ヽェェ| / 使い方を教えるお!!! / / | ノ ノ / / YYY\ \ \ \ /⌒,/´ ( _ ノ | \´ / / \ \ / \ \/ /l | \_,/ / \ \_/ \__ノ |\ .| / \ |) ) ヽ / \ ,r' / \ , '´ `' , /ー'′ \ ( ) / \ \ / / 使い方からいくとsvnとの乖離とコマンド大杉のせいで挫折するんだよ!
14.
コンセプト・・・ですか・・・ ____ /
\ / _ノ ヽ、_ \ そんなこと言われても / (●) (●) \ どうすりゃいいのさ | (__人__) | コンセプトとかわからないお \ ` ⌒´ / /´ `\ / / l l __l l_.[] _____/_/__ \, ´-'ヽ ヾ_ノ | | |__ コロ・・・・ _____\ コロ・・・・ ()__)」
15.
/ ̄ ̄\ / _ノ \ |
( ●)(●) . | (__人__) ゆっくりはじめるぞ | ` ⌒´ノ . | } . ヽ } ヽ ノ \ / く \ \ | \ \ \ | |ヽ、二⌒)、 \
16.
gitのコンセプト
17.
リポジトリ • すべてのリポジトリは並列 • すべてのリポジトリは今までの履歴を持つ
18.
commitを理解する
19.
空のリポジトリ
20.
ファイルを追加したり 編集・・・
21.
git add, git
commitで コミット
22.
新しいコミットができる hoge.cを追加
23.
コミットに含まれるもの hoge.cを追加 revision(SHAハッシュ値) コミットした人 コミットを作った人 ファイル構造 一つ前のrevision(ポインタみたいな)
24.
コミットに含まれるもの hoge.cを追加 revision(SHAハッシュ値) コミットした人 コミットを作った人 ファイル構造 一つ前のrevision(ポインタみたいな) リポジトリに含まれる すべてのデータは このコミットなのです
25.
コミットに含まれるもの hoge.cを追加 revision(SHAハッシュ値) コミットした人 コミットを作った人 ファイル構造 一つ前のrevision(ポインタみたいな) svnのように番号で 管理されないこと に気をつけて
26.
さらに重ねると hoge.cを追加 hoge.cを編集 hoge.cを編集 こういうグラフをコミットグラフといいます backポインタが常にあるので すべてのコミットを
るとファイル構造を常に再現できます
27.
実際にやってみよう Mac-mini:Desktop sonson$ mkdir
test Mac-mini:Desktop sonson$ cd test
28.
実際にやってみよう Mac-mini:Desktop sonson$ mkdir
test Mac-mini:Desktop sonson$ cd test Mac-mini:test sonson$ git init Initialized empty Git repository in /Users/sonson/Desktop/test/.git/ リポジトリ作成
29.
実際にやってみよう Mac-mini:Desktop sonson$ mkdir
test Mac-mini:Desktop sonson$ cd test Mac-mini:test sonson$ git init Initialized empty Git repository in /Users/sonson/Desktop/test/.git/ Mac-mini:test sonson$ ls -al total 0 drwxr-xr-x 3 sonson staff 102 3 13 09:53 . drwx------+ 22 sonson staff 748 3 13 09:53 .. drwxr-xr-x 10 sonson staff 340 3 13 09:53 .git この不可視ファイルの中身がリポジトリのデータ
30.
実際にやってみよう Mac-mini:Desktop sonson$ mkdir
test Mac-mini:Desktop sonson$ cd test Mac-mini:test sonson$ git init Initialized empty Git repository in /Users/sonson/Desktop/test/.git/ Mac-mini:test sonson$ ls -al total 0 drwxr-xr-x 3 sonson staff 102 3 13 09:53 . drwx------+ 22 sonson staff 748 3 13 09:53 .. drwxr-xr-x 10 sonson staff 340 3 13 09:53 .git Mac-mini:test sonson$ touch main.c
31.
実際にやってみよう Mac-mini:Desktop sonson$ mkdir
test Mac-mini:Desktop sonson$ cd test Mac-mini:test sonson$ git init Initialized empty Git repository in /Users/sonson/Desktop/test/.git/ Mac-mini:test sonson$ ls -al total 0 drwxr-xr-x 3 sonson staff 102 3 13 09:53 . drwx------+ 22 sonson staff 748 3 13 09:53 .. drwxr-xr-x 10 sonson staff 340 3 13 09:53 .git Mac-mini:test sonson$ touch main.c Mac-mini:test sonson$ git add main.c gitのファイルツリーの中に追加する
32.
実際にやってみよう Mac-mini:Desktop sonson$ mkdir
test Mac-mini:Desktop sonson$ cd test Mac-mini:test sonson$ git init Initialized empty Git repository in /Users/sonson/Desktop/test/.git/ Mac-mini:test sonson$ ls -al total 0 drwxr-xr-x 3 sonson staff 102 3 13 09:53 . drwx------+ 22 sonson staff 748 3 13 09:53 .. drwxr-xr-x 10 sonson staff 340 3 13 09:53 .git Mac-mini:test sonson$ touch main.c Mac-mini:test sonson$ git add main.c Mac-mini:test sonson$ git commit -m "First commit, added main.c" [master (root-commit) d3f62cb] First commit, added main.c 0 files changed create mode 100644 main.c 新しいコミットが作成された
33.
git • hashの一意性 • 差分のツリー構造 •
常に後ろに れる
34.
わかった? ____ /
\ ( ;;;;( / _ノ ヽ__\) ;;;;) / (─) (─ /;;/ | (__人__) l;;,´ コミットの管理がかわっただけだお? / ∩ ノ)━・'/ ( \ / _ノ´.| | 結局svnと同じじゃないかお・・・・? .\ " /__| | \ /___ /
35.
/ ̄ ̄\ / _ノ \ |
( ●)(●) . | (__人__) ツリー構造で管理していて, | ` ⌒´ノ ファイルの部分ごとの差分もちゃんと取れる . | } 良さがあるんだが・・・・. . ヽ } まぁ,ここはそのままでいいだろう ヽ ノ \ / く \ \ | \ \ \ | |ヽ、二⌒)、 \
36.
clone/push/pullを理解する
37.
どこかにリポジトリがある hoge.cを追加 hoge.cを編集 hoge.cを編集
38.
コピーする(くろーん) hoge.cを追加 hoge.cを編集 hoge.cを編集 clone hoge.cを追加
hoge.cを編集 hoge.cを編集
39.
コードを書く hoge.cを追加 hoge.cを編集 hoge.cを編集 hoge.cを追加
hoge.cを編集 hoge.cを編集 bar.cを追加 hoge.cを追加 hoge.cを編集 hoge.cを編集
40.
コミットする hoge.cを追加 hoge.cを編集 hoge.cを編集hoge.cを追加
hoge.cを編集 hoge.cを編集 hoge.cを追加 hoge.cを編集 hoge.cを編集 コミット
41.
pushする push hoge.cを追加 hoge.cを編集 hoge.cを編集hoge.cを追加
hoge.cを編集 hoge.cを編集 hoge.cを追加 hoge.cを編集 hoge.cを編集 コミット
42.
ウマー hoge.cを追加 hoge.cを編集 hoge.cを編集
bar.cを追加 push hoge.cを追加 hoge.cを編集 hoge.cを編集 bar.cを追加
43.
pullは? hoge.cを追加 hoge.cを編集 hoge.cを編集
bar.cを追加 bar.cを編集 hoge.cを追加 hoge.cを編集 hoge.cを編集 bar.cを追加 あ,なんか他のリポジトリが 更新されてる!!
44.
pullは? hoge.cを追加 hoge.cを編集 hoge.cを編集
bar.cを追加 pull hoge.cを追加 hoge.cを編集 hoge.cを編集 bar.cを追加 bar.cを編集
45.
ひっぱってくる 更新された! hoge.cを追加 hoge.cを編集 hoge.cを編集
bar.cを追加 bar.cを編集 hoge.cを追加 hoge.cを編集 hoge.cを編集 bar.cを追加 bar.cを編集
46.
わかった? ____ /
\ ( ;;;;( / _ノ ヽ__\) ;;;;) / (─) (─ /;;/ | (__人__) l;;,´ コミットと何が違うのかお? / ∩ ノ)━・'/ ( \ / _ノ´.| | pullとpushの呼び方が変わっただけかお・・・・? .\ " /__| | \ /___ /
47.
/ ̄ ̄\ / _ノ \ |
( ●)(●) . | (__人__) 確かにな・・・・・ | ` ⌒´ノ 実際の開発の風景を思い浮かべると . | } リポジトリがpush/pullで対等であることの . ヽ } よさがわかると思うぞ ヽ ノ \ / く \ \ | \ \ \ | |ヽ、二⌒)、 \
48.
対等性 - 公開リポジトリの場合 S川くん Y田さん
49.
対等性 - 社内リポジトリの場合 S川くん Y田さんのコードに バグがある!! どーしよー Y田さん
50.
人間関係 S川くん 間違ってコミットしたら怒られる の怖いけど 直したい・・・・ Y田さん
51.
やっちゃったのか S川くん 実際,前にY田さんのリポジト リめちゃめちゃにしちゃって Y田さんのリポジトリにPushする権限がない し・・・・・ Y田さん
52.
そんなときは S川くん clone どっかのリポジトリY田さん
53.
対等性 S川くん commit Y田さん
54.
対等性 S川くん バグ直しましたよ!! こんなもんで,どうですか? Y田さん
55.
対等性 S川くん あ,いいじゃん Y田さん
56.
対等性 S川くん pull Y田さん pullする
57.
対等性 S川くん やったーバグ治った! 俺のコードがちゃんと役立った! Y田さん
58.
clone/push/pull • clone/push/pullの考えみたいなもの? • 親とか子とか関係ないので,clone元からpull して更新することもできます •
push/pullというのは力関係がないことを意味 するわけです
59.
わかった? ____ /
\ ( ;;;;( / _ノ ヽ__\) ;;;;) / (─) (─ /;;/ | (__人__) l;;,´ 分散ってのはわかったお・・・・・・・・ / ∩ ノ)━・'/ 色々な人とやるには便利っぽいお・・・・・・ ( \ / _ノ´.| | ウチの開発環境に関係ないお・・・・・・? .\ " /__| | \ /___ /
60.
/ ̄ ̄\ / _ノ \ |
( ●)(●) . | (__人__) pull requestと呼ばれるgithubの仕組みを思い浮かべるといい. | ` ⌒´ノ . | } マージする場所をbranchを作った人が指定するような感じだ . ヽ } 職人的にマージする必要性がなくなるので捗る ヽ ノ \ / く \ \ | \ \ \ | |ヽ、二⌒)、 \
61.
branchを理解する
62.
branch master
63.
branchを切る master debug-feat1
64.
branchを切り替える master debug-feat1
65.
branchを切り替える master debug-feat1 つまりbranchとはポインタのようなものです branchの有無とは無関係にコミットは存在します
66.
コミットする master debug-feat1
67.
さらにコミットする master debug-feat1
68.
さらにコミットする master バグも取れたし,テストも終わ ったわー debug-feat1
69.
master側も作業 master debug-feat1
70.
branchを切り替えて・・・ master debug-feat1
71.
master側コミットされたようです master debug-feat1
72.
マージ開始 バグFixして欲しい debug-feat1 master
73.
gitがチェック debug-feat1 master git チェック!
74.
gitがチェック debug-feat1 master git コンフリクト とかなさげ,Go
75.
マーーーーーーーーージ!! master debug-feat1
76.
よし,よし バグ取れたわ master debug-feat1
77.
あれ? あのー,俺は? master debug-feat1
78.
・・・・ あ,用済みだわ master debug-feat1
79.
branch削除 master あああああああ!
80.
branchの考え方 branchとはこんなイメージです svnと違ってデータがすべてコピーされません あくまでポインタであることをお忘れなく 実体はコミットグラフとして常に存在しています master
81.
実際にやってみよう Mac-mini:test sonson$ git
branch * master 現在のbranchを調べる master
82.
実際にやってみよう Mac-mini:test sonson$ git
branch * master Mac-mini:test sonson$ git branch develop 新しくbranchを作成 develop master
83.
実際にやってみよう Mac-mini:test sonson$ git
branch * master Mac-mini:test sonson$ git branch develop Mac-mini:test sonson$ git checkout develop Switched to branch 'develop' 新しく作ったbranchに切り替える develop master
84.
実際にやってみよう Mac-mini:test sonson$ git
branch * master Mac-mini:test sonson$ git branch develop Mac-mini:test sonson$ git checkout develop Switched to branch 'develop' Mac-mini:test sonson$ git branch * develop master branchを調べるとちゃんとふたつある develop master
85.
実際にやってみよう Mac-mini:test sonson$ git
branch * master Mac-mini:test sonson$ git branch develop Mac-mini:test sonson$ git checkout develop Switched to branch 'develop' Mac-mini:test sonson$ git branch * develop master Mac-mini:test sonson$ touch feature1.c Mac-mini:test sonson$ git add feature1.c Mac-mini:test sonson$ git commit -m "Added new feature." [develop 5b5cc9c] Added new feature. 0 files changed create mode 100644 feature1.c branch “develop”でファイルを追加する develop master
86.
実際にやってみよう Mac-mini:test sonson$ git
branch * master Mac-mini:test sonson$ git branch develop Mac-mini:test sonson$ git checkout develop Switched to branch 'develop' Mac-mini:test sonson$ git branch * develop master Mac-mini:test sonson$ touch feature1.c Mac-mini:test sonson$ git add feature1.c Mac-mini:test sonson$ git commit -m "Added new feature." [develop 5b5cc9c] Added new feature. 0 files changed create mode 100644 feature1.c Mac-mini:test sonson$ ls feature1.c main.c ちゃんとファイルはふたつあるよね develop master
87.
実際にやってみよう Mac-mini:test sonson$ git
branch * master Mac-mini:test sonson$ git branch develop Mac-mini:test sonson$ git checkout develop Switched to branch 'develop' Mac-mini:test sonson$ git branch * develop master Mac-mini:test sonson$ touch feature1.c Mac-mini:test sonson$ git add feature1.c Mac-mini:test sonson$ git commit -m "Added new feature." [develop 5b5cc9c] Added new feature. 0 files changed create mode 100644 feature1.c Mac-mini:test sonson$ ls feature1.c main.c Mac-mini:test sonson$ git checkout master Switched to branch 'master' ここでbranch “master”に戻すとどうなる? develop master
88.
実際にやってみよう Mac-mini:test sonson$ git
branch * master Mac-mini:test sonson$ git branch develop Mac-mini:test sonson$ git checkout develop Switched to branch 'develop' Mac-mini:test sonson$ git branch * develop master Mac-mini:test sonson$ touch feature1.c Mac-mini:test sonson$ git add feature1.c Mac-mini:test sonson$ git commit -m "Added new feature." [develop 5b5cc9c] Added new feature. 0 files changed create mode 100644 feature1.c Mac-mini:test sonson$ ls feature1.c main.c Mac-mini:test sonson$ git checkout master Switched to branch 'master' Mac-mini:test sonson$ ls main.c あ,ファイルが消えてる!!!!!!!!! develop master
89.
実際にやってみよう Mac-mini:test sonson$ git
branch * master Mac-mini:test sonson$ git branch develop Mac-mini:test sonson$ git checkout develop Switched to branch 'develop' Mac-mini:test sonson$ git branch * develop master Mac-mini:test sonson$ touch feature1.c Mac-mini:test sonson$ git add feature1.c Mac-mini:test sonson$ git commit -m "Added new feature." [develop 5b5cc9c] Added new feature. 0 files changed create mode 100644 feature1.c Mac-mini:test sonson$ ls feature1.c main.c Mac-mini:test sonson$ git checkout master Switched to branch 'master' Mac-mini:test sonson$ ls main.c あ,ファイルが消えてる!!!!!!!!! gitのリポジトリを作ったディレクトリはgitに管理されるイメージ. すべてのデータは.git内にあり,そこからデータを引き出して, そのディレクトリ内で作業する感じになる
90.
マージしてみる Mac-mini:test sonson$ git
checkout master Switched to branch 'master' Mac-mini:test sonson$ ls main.c develop master
91.
あれ? Mac-mini:test sonson$ git
checkout master Switched to branch 'master' Mac-mini:test sonson$ ls main.c Mac-mini:test sonson$ git merge develop -m "Merge new feature1." Merge made by the 'recursive' strategy. 0 files changed create mode 100644 feature1.c Mac-mini:test sonson$ developをmasterにマージ develop master
92.
あれ? Mac-mini:test sonson$ git
checkout master Switched to branch 'master' Mac-mini:test sonson$ ls main.c Mac-mini:test sonson$ git merge develop -m "Merge new feature1." Merge made by the 'recursive' strategy. 0 files changed create mode 100644 feature1.c Mac-mini:test sonson$ developをmasterにマージ develop master これをfast forwardマージといいます. ファイル等の変更にコンフリクト等がない場合は, そのままbranchを飛ばすだけでマージが成立するのです.
93.
マージしてみる2 Mac-mini:test sonson$ git
checkout master Switched to branch 'master' Mac-mini:test sonson$ ls main.c develop master
94.
おー Mac-mini:test sonson$ git
checkout master Switched to branch 'master' Mac-mini:test sonson$ ls main.c Mac-mini:test sonson$ git merge develop -m "Merge new feature1." --no-ff Merge made by the 'recursive' strategy. 0 files changed create mode 100644 feature1.c Mac-mini:test sonson$ developをmasterにマージ develop master
95.
おー Mac-mini:test sonson$ git
checkout master Switched to branch 'master' Mac-mini:test sonson$ ls main.c Mac-mini:test sonson$ git merge develop -m "Merge new feature1." --no-ff Merge made by the 'recursive' strategy. 0 files changed create mode 100644 feature1.c Mac-mini:test sonson$ developをmasterにマージ develop master これをno fast forwardマージといいます. 常に新しいコミットを作ってマージします.
96.
おー Mac-mini:test sonson$ git
checkout master Switched to branch 'master' Mac-mini:test sonson$ ls main.c Mac-mini:test sonson$ git merge develop -m "Merge new feature1." --no-ff Merge made by the 'recursive' strategy. 0 files changed create mode 100644 feature1.c Mac-mini:test sonson$ developをmasterにマージ develop master 手元でマージするときは必ず,--no-ffで行うべきです. どこでマージが行われたのかわからないからです. さっきの例は--no-ffだったのね (というか絶対コミットができる)
97.
おー Mac-mini:test sonson$ git
checkout master Switched to branch 'master' Mac-mini:test sonson$ ls main.c Mac-mini:test sonson$ git merge develop -m "Merge new feature1." --no-ff Merge made by the 'recursive' strategy. 0 files changed create mode 100644 feature1.c Mac-mini:test sonson$ developをmasterにマージ develop master ただし,pullするときには--ffでやる方がいいでしょう. ローカルに対してもコミットが発生してしまうので, コミットグラフがぐちゃぐちゃになってしまいます
98.
おー Mac-mini:test sonson$ git
checkout master Switched to branch 'master' Mac-mini:test sonson$ ls main.c Mac-mini:test sonson$ git merge develop -m "Merge new feature1." --no-ff Merge made by the 'recursive' strategy. 0 files changed create mode 100644 feature1.c Mac-mini:test sonson$ developをmasterにマージ develop master とは言っても,グラフがめちゃくちゃになっても コードはちゃんと保たれるのであまり心配することもありません. 最初は恐れずガンガンやって,後悔することにしましょう.
99.
branch • gitのbranchは軽い • んでbranchのようで(svnの)branchではない •
svnのようにコピーではありません • いくら作ってもリポジトリは大きくなりません • すぐに気軽に作って潰せます
100.
わかった? ____ /
\ ( ;;;;( / _ノ ヽ__\) ;;;;) / (─) (─ /;;/ | (__人__) l;;,´ ますますわからなくなったお・・・・・・・・ / ∩ ノ)━・'/ これが何の役に立つんだお・・・・・・? ( \ / _ノ´.| | .\ " /__| | \ /___ /
101.
/ ̄ ̄\ / _ノ \ |
( ●)(●) . | (__人__) このbranchとpush/pullを組み合わせると | ` ⌒´ノ 分散型の開発開発すごく捗るんだが・・・・ . | } . ヽ } 仕方がない具体的な例で説明するか ヽ ノ \ / く \ \ | \ \ \ | |ヽ、二⌒)、 \
102.
gitを実践で考える
103.
実践
104.
例)アプリを展示会に出す master feature1 develop ついにver1が完成!明日から3日間展示会です!
105.
cloneします master feature1 develop master feature1 develop
106.
cloneします master feature1 develop master feature1 develop 展示会組 居残り組
107.
展示会の準備中 master feature1
108.
動かしたら・・・ master feature1 ちょwwwww おまwwwwwww S木さんの コードバグってる!!!
109.
動かしたら・・・ master feature1 どーすんのよー この場で直すかー
110.
動かしたら・・・ master どーすんのよー この場で直すかー branch切るよー feature1
111.
デバッグ! master feature1 demo-fix
112.
デバッグ! master demo-fix まだ何かヘンだなー feature1
113.
展示会も終わり・・・ master demo-fix feature1
114.
さて,帰ってきたのでPush! master demo-fix feature1
115.
さて,帰ってきたのでPush! master demo-fix feature1
116.
おお,統合された master demo-fix develop feature1
117.
マージして整理しようか master demo-fix develop feature1
118.
展示会でのfixどうする? master demo-fix develop feature1
119.
よさげなのでマーーーージ master develop feature1 demo-fix
120.
こっちもください master develop feature1
121.
こっちもください master develop feature1
122.
ちゃんちゃん master develop feature1
123.
祭りの後 ____ /
\ ( ;;;;( / _ノ ヽ__\) ;;;;) / (─) (─ /;;/ | (__人__) l;;,´ なんとなくわかったような・・・・・・・・ / ∩ ノ)━・'/ なんだかわからないような・・・・・だお ( \ / _ノ´.| | .\ " /__| | \ /___ /
124.
/ ̄ ̄\ / _ノ \ |
( ●)(●) . | (__人__) しょせん概念は概念. | ` ⌒´ノ 実際にやらないとわからないだろJK . | } . ヽ } この使い方を年頭にいれて使ってみるのが定石だ ヽ ノ \ / く \ \ | \ \ \ | |ヽ、二⌒)、 \
125.
____ /⌒ ⌒\
ホジホジ /( ●) (●)\ /::::::⌒(__人__)⌒::::: \ とりあえずやってみるお | mj |ー'´ | \ 〈__ノ / ノ ノ
126.
._
\ヽ, ,、 `''|/ノ .| _ | \`ヽ、| \, V `L,,_ |ヽ、) ,、 / ヽYノ / r''ヽ、.| | `ー-ヽ|ヮ | `| |. | ヽ、 | ヽ____ノ /_ノ ' ヽ_\ /(≡) (≡)\ /::::::⌒(__人__)⌒::::: \ | |r┬-| | \ `ー'´ / / \ ( | | ) \| э |/ ( ,,,, ,ノ \ 、(U)ノ ノ \/ / ┼ヽ -|r‐、. レ | / /\ d⌒) ./| _ノ __ノ ⊂⌒__)__)
127.
Thank you. @sonson_twit http://sonson.jp
128.
backup slide backup
Jetzt herunterladen