SlideShare a Scribd company logo
ておくれないgit
@rkmathi
このスライドは
gitを使ったことがない人向け
1. そもそもgitて何?
2. gitの(1人での)使い方について
ておくれないためにgitを使おう
( ^o^)「実験のプログラムたくさん書くぞ!
   新しい機能追加するし書き変えちゃえ」
( ˘⊖˘) 。o(待てよ?ここの機能が動いてないから
    書きなおさないと…)
|数日前のソースコード| ┗(☋` )┓三
( ◠‿◠ )☛ どこを直したのか覚えているのか?
▂▅▇█▓▒░(’ω’)░▒▓█▇▅▂うわあああああ
git is 何
バージョン管理システムです
ファイルの作成・編集・削除などの変更履歴を管理します
過去の状態を確認するだけでなく復元することができます
複数人で編集した際の競合を解決することもできます
ソースコードだけでなく原稿や設定ファイルにも使えます
どうやって使うの(1人の場合)
1. 管理するディレクトリを決めてリポジトリを作成します
2. ファイルを作成・修正・削除し、ステージします
3. 変更履歴をコミットします
あとは2, 3を繰り返すだけ!
リポジトリ is 何
gitが変更履歴を追跡するディレクトリのことです
例えば、"work"ディレクトリをリポジトリにすると、
study
- learn.c
work
- hoge.c
- fuga.c
dict
- moge.c
この構成ならばhoge.cとfuga.cの変更履歴を追跡します
ステージ is 何
リポジトリ内のファイルは、次の状態のどれかになります
1. 追跡されていない(untracked)
2. 変更されていない(unmodified)
3. 変更されている(modified)
4. ステージされている(staged)
ステージ is 何
1. 追跡されていない(untracked)
gitが変更履歴を追跡していない状態です。
変更履歴を追跡する必要がない・したくないファイルや、追加し
てすぐのファイルはこの状態になっています。
ステージ is 何
2. 変更されていない(unmodified)
このファイルは追跡対象にはなっているが、前回のコミットと比
べて変更点がないという状態です。
3. 変更されている(modified)
前回のコミットと比べて、変更点がある状態です。
ただし、まだステージされていないため、この状態でコミットして
も変更は記録されません。
4. ステージされている(staged)
次回のコミットで変更が記録されるファイルの状態です。
modified状態のファイルを、git addするとなります。
コミット is 何
リポジトリ内でstaged状態になっている全てのファイルに対し
て、前回との新規作成・変更・削除について記録をとることです
コミットすると、staged状態になっていたファイルは、
unmodified状態にもどります
コミットする際に、その時の状況などをコミットログとして文章に
して残すことができます
コミット is 何
コミットには日時情報が残っているので、
「○○日前の状態に戻したい」
「××日前の状態と今の状態の違いはどこ?」
のように、時をかける少女ごっこができます
ステージとかコミットとか
公式ドキュメントにそれっぽい図が書いてあります
http://git-scm.com/book/ja/Git-%E3%81%AE%E5%9F%BA%E6%9C%AC-%E5%A4%89%E6%9B%B4%E5%86%85%E5%AE%B9%E3%81%
AE%E3%83%AA%E3%83%9D%E3%82%B8%E3%83%88%E3%83%AA%E3%81%B8%E3%81%AE%E8%A8%98%E9%8C%B2
実際に使ってみる
Windowsの人は、
msysgit(https://code.google.com/p/msysgit/)と、
TortoiseGit(https://code.google.com/p/tortoisegit/)を
インストールするといいと思います
Macの人は、
公式(http://git-scm.com/)と、
SourceTree(http://sourcetreeapp.com/)を
インストールするといいと思います
Linuxの人はすでに入っているはずです
$ git --versionでgitのバージョンを確認出来ます
実際に使ってみる
1. 管理するディレクトリを決めてリポジトリを作成します
2. ファイルを作成・修正・削除し、ステージします
3. 変更履歴をコミットします
実際に使ってみる
1. 管理するディレクトリを決めてリポジトリを作成します
管理したいディレクトリに移動して、
「ここにリポジトリを作成」
または
$ git init
実際に使ってみる
1. 管理するディレクトリを決めてリポジトリを作成します
2. ファイルを作成・修正・削除し、ステージします
3. 変更履歴をコミットします
実際に使ってみる
2. ファイルを作成・修正・削除し、ステージします
リポジトリ内でファイルを作成・修正・削除します
削除する際はgit rmをし、以降追跡しないようにします
新規作成や修正したファイルにはgit addをし、ステージしま
す
例えば、
$ git rm A.c Dir/B.c
⇒ A.cとDir/B.cを削除
$ git add C.c Dir/D.c
⇒ C.cとDir/D.cをステージ
実際に使ってみる
2. ファイルを作成・修正・削除し、ステージします
現在のファイルの状態は、git statusで確認出来ます
例えば、
$ git status --short ⇒ --shortで簡易表示
D A.c
M C.c
D Dir/B.c
M Dir/D.c
?? E.c
のように表示されます
Dは削除される状態、Mはステージ、??はuntrackedです
実際に使ってみる
1. 管理するディレクトリを決めてリポジトリを作成します
2. ファイルを作成・修正・削除し、ステージします
3. 変更履歴をコミットします
実際に使ってみる
3. 変更履歴をコミットします
git commitコマンドでコミットします
例えば、
$ git commit -m "コミットメッセージ"
⇒ -mオプションでメッセージを直後に書けます
とすれば、その時点での変更点をコミットメッセージ付きで記録
することができます
今までのコミットの履歴を見るには、
$ git log
というコマンドで確認できます
変更点を確認したい
過去のコミットと現在の状態の変更点を確認するには、
git diffコマンドを使います
$ git diff 比較点1..比較点2 -- ファイル名
例えば、現在と過去のコミット(c2c5ab4)でのDir/A.cファイルの
変更点を確認するには、
$ git diff ..c2c5ab4 -- Dir/A.c
直前のコミット(HEADという名前がついています)と過去のコミッ
ト(12c4923)での全ファイルの変更点は、
$ git diff HEAD..12c4923
で見ることができます
過去に削除したファイルを復元したい
過去のコミットでは存在したが、現在はもう削除してしまったファ
イルを復元するにはgit checkoutを使います
現在も存在しているファイルを過去の状態に戻すときにも、git
checkoutを使います
$ git checkout コミット名 -- ファイル名
例えば、Dir/hoge.cというファイルを2つ前のコミット(HEAD~2)
の状態に戻すには、
$ git checkout HEAD~2 -- Dir/hoge.c
fuga.cというファイルを過去のコミット(c2c5ab4)の状態に戻す
には、
$ git checkout c2c5ab4 -- fuga.c
とします
その他
・ブランチ/タグ
・リモートリポジトリ
・複数人でのgit運用
・設定ファイル
など、まだまだたくさん機能はあるので使ってみて下さい
困ったら
かなりわかりやすいドキュメントが日本語化されてます
Pro Git (http://git-scm.com/book/ja)
それでも困ったら、適当にググればだいたい解決します
ヾ(@⌒ー⌒@)ノ
gitを使えるようにしましょうヾ(@⌒ー⌒@)ノ
使えれば何をするにもめっちゃ便利ですヾ(@⌒ー⌒@)ノ

More Related Content

What's hot

Git 初心者講座 by forkwell
Git 初心者講座 by forkwellGit 初心者講座 by forkwell
Git 初心者講座 by forkwell
sinsoku listy
 
Git for Begineers GitHub ハンズオン
Git for Begineers GitHub ハンズオンGit for Begineers GitHub ハンズオン
Git for Begineers GitHub ハンズオン
Emma Haruka Iwao
 
Git flowについてまとめてみた
Git flowについてまとめてみたGit flowについてまとめてみた
Git flowについてまとめてみた
hiroyuki koga
 
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
naoki koyama
 
やりなおせる Git 入門
やりなおせる Git 入門やりなおせる Git 入門
やりなおせる Git 入門
Tomohiko Himura
 
【社内勉強会】弊社でGit!実案件での運用
【社内勉強会】弊社でGit!実案件での運用【社内勉強会】弊社でGit!実案件での運用
【社内勉強会】弊社でGit!実案件での運用
Reimi Kuramochi Chiba
 
スキトラGit
スキトラGitスキトラGit
スキトラGit
小川 昌吾
 
Slide
SlideSlide
底辺webプログラマが今更git語ってみた
底辺webプログラマが今更git語ってみた底辺webプログラマが今更git語ってみた
底辺webプログラマが今更git語ってみた
Yudai Fujita
 
ゼミGit
ゼミGitゼミGit
ゼミGit
Takuya Uehara
 
はじめてのGit #gitkyoto
はじめてのGit #gitkyotoはじめてのGit #gitkyoto
はじめてのGit #gitkyoto
Hisateru Tanaka
 
Git運用ダメ出し会 - ネクストスケープ 2014/05/27 パワーランチ資料
Git運用ダメ出し会 - ネクストスケープ 2014/05/27 パワーランチ資料Git運用ダメ出し会 - ネクストスケープ 2014/05/27 パワーランチ資料
Git運用ダメ出し会 - ネクストスケープ 2014/05/27 パワーランチ資料mihararyosuke
 
Gitで始めるバージョン管理
Gitで始めるバージョン管理Gitで始めるバージョン管理
Gitで始めるバージョン管理
Daisuke Konishi
 
Go1.8 for Google App Engine
Go1.8 for Google App EngineGo1.8 for Google App Engine
Go1.8 for Google App Engine
Takuya Ueda
 
Git 10min
Git 10minGit 10min
Git 10min
gon6109
 
Gitの使い方あれこれ
Gitの使い方あれこれGitの使い方あれこれ
Gitの使い方あれこれ
よしだ あつし
 
SourceTreeで始めよう! Gitへの乗り換え指南
SourceTreeで始めよう! Gitへの乗り換え指南SourceTreeで始めよう! Gitへの乗り換え指南
SourceTreeで始めよう! Gitへの乗り換え指南
Kouji Matsui
 
大容量ファイルもGitで管理。 Git LFSの使い方
大容量ファイルもGitで管理。 Git LFSの使い方大容量ファイルもGitで管理。 Git LFSの使い方
大容量ファイルもGitで管理。 Git LFSの使い方
hibiki443
 

What's hot (20)

Git 初心者講座 by forkwell
Git 初心者講座 by forkwellGit 初心者講座 by forkwell
Git 初心者講座 by forkwell
 
Git for Begineers GitHub ハンズオン
Git for Begineers GitHub ハンズオンGit for Begineers GitHub ハンズオン
Git for Begineers GitHub ハンズオン
 
Git flowについてまとめてみた
Git flowについてまとめてみたGit flowについてまとめてみた
Git flowについてまとめてみた
 
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
 
やりなおせる Git 入門
やりなおせる Git 入門やりなおせる Git 入門
やりなおせる Git 入門
 
【社内勉強会】弊社でGit!実案件での運用
【社内勉強会】弊社でGit!実案件での運用【社内勉強会】弊社でGit!実案件での運用
【社内勉強会】弊社でGit!実案件での運用
 
スキトラGit
スキトラGitスキトラGit
スキトラGit
 
ojag20120519
ojag20120519ojag20120519
ojag20120519
 
Slide
SlideSlide
Slide
 
底辺webプログラマが今更git語ってみた
底辺webプログラマが今更git語ってみた底辺webプログラマが今更git語ってみた
底辺webプログラマが今更git語ってみた
 
ゼミGit
ゼミGitゼミGit
ゼミGit
 
はじめてのGit #gitkyoto
はじめてのGit #gitkyotoはじめてのGit #gitkyoto
はじめてのGit #gitkyoto
 
Git運用ダメ出し会 - ネクストスケープ 2014/05/27 パワーランチ資料
Git運用ダメ出し会 - ネクストスケープ 2014/05/27 パワーランチ資料Git運用ダメ出し会 - ネクストスケープ 2014/05/27 パワーランチ資料
Git運用ダメ出し会 - ネクストスケープ 2014/05/27 パワーランチ資料
 
Gitで始めるバージョン管理
Gitで始めるバージョン管理Gitで始めるバージョン管理
Gitで始めるバージョン管理
 
Git地図
Git地図Git地図
Git地図
 
Go1.8 for Google App Engine
Go1.8 for Google App EngineGo1.8 for Google App Engine
Go1.8 for Google App Engine
 
Git 10min
Git 10minGit 10min
Git 10min
 
Gitの使い方あれこれ
Gitの使い方あれこれGitの使い方あれこれ
Gitの使い方あれこれ
 
SourceTreeで始めよう! Gitへの乗り換え指南
SourceTreeで始めよう! Gitへの乗り換え指南SourceTreeで始めよう! Gitへの乗り換え指南
SourceTreeで始めよう! Gitへの乗り換え指南
 
大容量ファイルもGitで管理。 Git LFSの使い方
大容量ファイルもGitで管理。 Git LFSの使い方大容量ファイルもGitで管理。 Git LFSの使い方
大容量ファイルもGitで管理。 Git LFSの使い方
 

Viewers also liked

Gitことはじめ
GitことはじめGitことはじめ
Gitことはじめ
bleis tift
 
猫にはわからないGit講座
猫にはわからないGit講座猫にはわからないGit講座
猫にはわからないGit講座Yusei Yamanaka
 
Git 入門
Git 入門Git 入門
Git 入門
y-uti
 
はじめようGit
はじめようGitはじめようGit
はじめようGit
techscore
 
いつやるの?Git入門
いつやるの?Git入門いつやるの?Git入門
いつやるの?Git入門
Masakazu Matsushita
 
こわくない Git
こわくない Gitこわくない Git
こわくない Git
Kota Saito
 
Scalaで実装するGC
Scalaで実装するGCScalaで実装するGC
Scalaで実装するGC
NISHIMOTO Keisuke
 
jvmlang.daitokai 1: ScalaはEdisonの夢を見る
jvmlang.daitokai 1: ScalaはEdisonの夢を見るjvmlang.daitokai 1: ScalaはEdisonの夢を見る
jvmlang.daitokai 1: ScalaはEdisonの夢を見る
NISHIMOTO Keisuke
 
GraphX is the blue ocean for scala engineers @ Scala Matsuri 2014
GraphX is the blue ocean for scala engineers @ Scala Matsuri 2014GraphX is the blue ocean for scala engineers @ Scala Matsuri 2014
GraphX is the blue ocean for scala engineers @ Scala Matsuri 2014
鉄平 土佐
 
はじめてのカスタマイズ
はじめてのカスタマイズはじめてのカスタマイズ
はじめてのカスタマイズ
Seiichiro Mishiba
 
Gitを使ってみませんか
Gitを使ってみませんかGitを使ってみませんか
Gitを使ってみませんか
Atsuhiro Takiguchi
 
30分でサボれるGit
30分でサボれるGit30分でサボれるGit
30分でサボれるGit
Takeshi Kimura
 
Gitを使いこなしてみよう!
Gitを使いこなしてみよう!Gitを使いこなしてみよう!
Gitを使いこなしてみよう!
Hiroshi Maekawa
 
Git入門
Git入門Git入門
Git入門
Masahiro Honma
 
インフラエンジニアのためのGit入門
インフラエンジニアのためのGit入門インフラエンジニアのためのGit入門
インフラエンジニアのためのGit入門
Kouhei Maeda
 
実践 Git - 低レベルに知る Git
実践 Git - 低レベルに知る Git実践 Git - 低レベルに知る Git
実践 Git - 低レベルに知る Git
Youhei Nitta
 
git 初めの一歩
git 初めの一歩git 初めの一歩
git 初めの一歩
Shin Yoshida
 
Gitを使った運用方法
Gitを使った運用方法Gitを使った運用方法
Gitを使った運用方法
Hiroki Nigorinuma
 
Gitの便利ワザ
Gitの便利ワザGitの便利ワザ
Gitの便利ワザ
ktateish
 

Viewers also liked (20)

Gitことはじめ
GitことはじめGitことはじめ
Gitことはじめ
 
猫にはわからないGit講座
猫にはわからないGit講座猫にはわからないGit講座
猫にはわからないGit講座
 
Git 入門
Git 入門Git 入門
Git 入門
 
はじめようGit
はじめようGitはじめようGit
はじめようGit
 
いつやるの?Git入門
いつやるの?Git入門いつやるの?Git入門
いつやるの?Git入門
 
こわくない Git
こわくない Gitこわくない Git
こわくない Git
 
Scalaで実装するGC
Scalaで実装するGCScalaで実装するGC
Scalaで実装するGC
 
jvmlang.daitokai 1: ScalaはEdisonの夢を見る
jvmlang.daitokai 1: ScalaはEdisonの夢を見るjvmlang.daitokai 1: ScalaはEdisonの夢を見る
jvmlang.daitokai 1: ScalaはEdisonの夢を見る
 
GraphX is the blue ocean for scala engineers @ Scala Matsuri 2014
GraphX is the blue ocean for scala engineers @ Scala Matsuri 2014GraphX is the blue ocean for scala engineers @ Scala Matsuri 2014
GraphX is the blue ocean for scala engineers @ Scala Matsuri 2014
 
はじめてのカスタマイズ
はじめてのカスタマイズはじめてのカスタマイズ
はじめてのカスタマイズ
 
XcodeでGit
XcodeでGitXcodeでGit
XcodeでGit
 
Gitを使ってみませんか
Gitを使ってみませんかGitを使ってみませんか
Gitを使ってみませんか
 
30分でサボれるGit
30分でサボれるGit30分でサボれるGit
30分でサボれるGit
 
Gitを使いこなしてみよう!
Gitを使いこなしてみよう!Gitを使いこなしてみよう!
Gitを使いこなしてみよう!
 
Git入門
Git入門Git入門
Git入門
 
インフラエンジニアのためのGit入門
インフラエンジニアのためのGit入門インフラエンジニアのためのGit入門
インフラエンジニアのためのGit入門
 
実践 Git - 低レベルに知る Git
実践 Git - 低レベルに知る Git実践 Git - 低レベルに知る Git
実践 Git - 低レベルに知る Git
 
git 初めの一歩
git 初めの一歩git 初めの一歩
git 初めの一歩
 
Gitを使った運用方法
Gitを使った運用方法Gitを使った運用方法
Gitを使った運用方法
 
Gitの便利ワザ
Gitの便利ワザGitの便利ワザ
Gitの便利ワザ
 

Similar to ておくれないgit

Stylez GitLab勉強会 第1回
Stylez GitLab勉強会 第1回Stylez GitLab勉強会 第1回
Stylez GitLab勉強会 第1回
Tetsurou Yano
 
Git講習会
Git講習会Git講習会
Git講習会
galluda
 
Python for Data Analysis第1回勉強会(+git入門)
Python for Data Analysis第1回勉強会(+git入門)Python for Data Analysis第1回勉強会(+git入門)
Python for Data Analysis第1回勉強会(+git入門)
Makoto Kawano
 
超初心者のためのGitマニュアル
超初心者のためのGitマニュアル超初心者のためのGitマニュアル
超初心者のためのGitマニュアル
MasakiKato14
 
15分でわかるGit入門
15分でわかるGit入門15分でわかるGit入門
15分でわかるGit入門
to_ueda
 
2018 07-18 git-hub講座
2018 07-18 git-hub講座2018 07-18 git-hub講座
2018 07-18 git-hub講座
貴一 末田
 
今日から始めるGithub
今日から始めるGithub今日から始めるGithub
今日から始めるGithublion-man
 
Git
GitGit
C#でゲームを作る2016 第8回
C#でゲームを作る2016 第8回C#でゲームを作る2016 第8回
C#でゲームを作る2016 第8回
京大 マイコンクラブ
 
Application Developer Festival 2015 LT
Application Developer Festival 2015 LTApplication Developer Festival 2015 LT
Application Developer Festival 2015 LT
Junpei Matsuda
 
git addの解説
git addの解説git addの解説
git addの解説
Kamimura Taichi
 
About git
About gitAbout git
About git
asakohasegawa
 
Git演習(1)
Git演習(1)Git演習(1)
Git演習(1)
sono8
 
20130706 git
20130706 git20130706 git
20130706 git
Kasu Unko
 
非エンジニアに捧ぐツアーオブ構成管理
非エンジニアに捧ぐツアーオブ構成管理非エンジニアに捧ぐツアーオブ構成管理
非エンジニアに捧ぐツアーオブ構成管理
小川 昌吾
 
社内Git勉強会向け資料
社内Git勉強会向け資料社内Git勉強会向け資料
社内Git勉強会向け資料
Hiroki Saiki
 
01.app
01.app01.app

Similar to ておくれないgit (20)

Stylez GitLab勉強会 第1回
Stylez GitLab勉強会 第1回Stylez GitLab勉強会 第1回
Stylez GitLab勉強会 第1回
 
Git講習会
Git講習会Git講習会
Git講習会
 
Python for Data Analysis第1回勉強会(+git入門)
Python for Data Analysis第1回勉強会(+git入門)Python for Data Analysis第1回勉強会(+git入門)
Python for Data Analysis第1回勉強会(+git入門)
 
超初心者のためのGitマニュアル
超初心者のためのGitマニュアル超初心者のためのGitマニュアル
超初心者のためのGitマニュアル
 
15分でわかるGit入門
15分でわかるGit入門15分でわかるGit入門
15分でわかるGit入門
 
2018 07-18 git-hub講座
2018 07-18 git-hub講座2018 07-18 git-hub講座
2018 07-18 git-hub講座
 
今日から始めるGithub
今日から始めるGithub今日から始めるGithub
今日から始めるGithub
 
Git
GitGit
Git
 
C#でゲームを作る2016 第8回
C#でゲームを作る2016 第8回C#でゲームを作る2016 第8回
C#でゲームを作る2016 第8回
 
Gitはじめの一歩
Gitはじめの一歩Gitはじめの一歩
Gitはじめの一歩
 
Application Developer Festival 2015 LT
Application Developer Festival 2015 LTApplication Developer Festival 2015 LT
Application Developer Festival 2015 LT
 
git-webtouchmeeting
git-webtouchmeetinggit-webtouchmeeting
git-webtouchmeeting
 
git addの解説
git addの解説git addの解説
git addの解説
 
About git
About gitAbout git
About git
 
Aedlabo git seminer
Aedlabo git seminerAedlabo git seminer
Aedlabo git seminer
 
Git演習(1)
Git演習(1)Git演習(1)
Git演習(1)
 
20130706 git
20130706 git20130706 git
20130706 git
 
非エンジニアに捧ぐツアーオブ構成管理
非エンジニアに捧ぐツアーオブ構成管理非エンジニアに捧ぐツアーオブ構成管理
非エンジニアに捧ぐツアーオブ構成管理
 
社内Git勉強会向け資料
社内Git勉強会向け資料社内Git勉強会向け資料
社内Git勉強会向け資料
 
01.app
01.app01.app
01.app
 

ておくれないgit