SlideShare a Scribd company logo
1 of 59
Git 入門 実践編
<htmlday> in Tokushima
Presented by か (@ka_)
実践してみよう
●
まずは一人で開発する想定で使う
●
過去の自分は他人
– 十分役立つ
●
他人 ( 他の PC) との連携は考えない
– リモートという概念を考えない
リポジトリを作成 (Windows)
●
何処かに好きな名前でディレクトリ作成
– “git-test-win” がいいかも
●
ディレクトリ上で右クリック
– Git Create repository here...
●
これでディレクトリはリポジトリになった
●
.git というディレクトリが出来るはず
– これがリポジトリとしての実体
リポジトリを作成 (Windows)
●
Make it Bare はチェックしない
リポジトリを作成 (Mac)
●
SourceTree で作成
– SourceTree を開く
– 新規作成アイコンクリック
●
名前は何でもいい
– “git-test-mac” がいいかも
リポジトリを作成 (Mac)
リポジトリ作成 (Mac)
スクリーンショットは git-test-0 になってます
ごめんなさい
リポジトリを作成 (CUI)
● “mkdir git-test”
● “cd git-test”
● “git init”
●
おわり!かんたん! ( 説明が )
Author 設定
●
コミットにはそれを作った人情報が付随する
●
名前とメールアドレス
● Windows
– TortoiseGit > Settings > Git
● Mac
– SourceTree のインストール時に終了している
Author 設定
テキストファイル作成
●
“sample.txt” というファイルを作る
●
“a” という文字だけの行を追加
●
お好きなテキストエディタでどうぞ
リポジトリの様子 (Windows)
コミットする
●
コミットを作ることをコミットするとも言う
● Windows
– Git Commit → “master”
● Mac
– Files in working tree という所から
– Files staged in the index という所へ移動
– Commit
コミットコメント
●
コミットにはメタ情報として説明を残す
●
以下のような慣例がある
– 1 行目 : 概要 ( 無いと辛い )
– 2 行目 : 空行
– 3 行目以降 : 詳細 ( 無くても OK)
コミット作成の様子 (Windows)
コミット作成の様子 (Mac)
コミット後のリポジトリ
(Windows)
コミット後のリポジトリ (Mac)
ログを見る
●
リビジョングラフを見ること
● Windows
– 右クリック > TortoiseGit > Show log
● Mac
– そのまま表示されているはず
ログ (Mac)
コミットをどんどんしていく
●
“sample.txt” を編集する
– “b” を追加してコミット
– “c” を追加してコミット
“b” を追加 (Windows)
“b” を追加後 (Windows)
“b” を追加したコミット作成 (Win)
コミットによる差分表示
●
ファイルを選択して右クリック > Diff
“b” を追加したコミット作成 (Mac)
●
差分が見える
コミットはたくさん作ろう
●
粒度の塩梅は経験によるとしか言えない
●
二つの基準 ( 例 )
– どのコミットでもエラーが出ない
– コミットコメントが短く書ける
コミットがある安心感
●
いつでも好きなコミットに戻れる
– 戻り方はブランチの説明と併せて行う
●
コミットごとの全て変更が分かる
– いつ
– 誰が
– 何を
複数ファイルを管理
●
“sample2.txt” を作る
●
“z” という文字だけの行を追加
●
同様にコミットする
ログ (Windows)
ブランチを作る
●
新機能を試したい
●
ブランチを作って本流を汚さないようにする
●
ブランチには名前を付ける
– “b-0” という名前に今回はします
●
“master” というブランチを今は操作していた
ブランチの作り方
● Windows
– 右クリック > TortoiseGit > Create Branch
● Mac
– Branch > New Branch
– Check out new branch のチェックを確認
ブランチの作り方 (Windows)
ブランチが出来た (Windows)
ブランチの作り方 (Mac)
チェックアウトする
● Windows
– 右クリック > TortoiseGit > Switch/Checkout
● Mac
– ブランチ作成時に自動でチェックアウト
– 手動
●
左の BRANCHES から選んで右クリック
● Checkout b-0
チェックアウト (Windows)
チェックアウト完了 (Windows)
コミットを作っていく
●
“sample.txt” を編集
– “e, f, g” を各行に追加
– コミット
●
“sample2.txt” を編集
– “y, z” を各行に追加
– コミット
ログを確認
●
“b-0” がコミットを重ねていることが分かる
●
“master” は動いていない
ログ (Windows)
戻る方法について
●
“reset” という機能で戻れる
●
新しいブランチを作って行う
– 不用意に既存のブランチで行うと損失が起こる
– チェックアウトを忘れない
●
“hard” 形式が最も単純
– … であると思う
– その他の形式についての説明は省略
マージする
●
“b-0” 「を」マージする
●
“master” 「に」マージする
●
Non Fast Forward 方式にする
マージの手順 1
●
“master” にまずはチェックアウト
●
“b-0” をマージする
●
“non fast forward” にチェックを入れる
マージの手順 2
● Windows
– “master” にチェックアウト
– ログを表示
– “b-0” を右クリック
– “merge to “master”” を選択
– “non fast forward” をチェック
まずはチェックアウト (Windows)
マージ (Windows)
●
No FastForward にチェック
マージ完了 (Windows)
マージの手順 3
● Mac
– “master” にチェックアウト
– Merge をクリック
– “b-0” を選択
– Create a commit even if … をチェック
過去の変更を取り消す
●
Revert という機能を使う
●
まずは敢えて間違えたコミットを作る
●
その後いくつかコミットを重ねる
●
それを無かったことにしてみる
実験準備
●
“sample.txt” を編集
– “i” という行を追加 ( 本来は h のはずですね )
– コミット
●
“sample2.txt” を編集
– 2 つほどコミットを作ってみる
●
“w, v” を追加してみるなど
準備完了 (Windows)
あ!しまった! ( 棒読み )
●
2 つも前のコミットが間違えています
– 別に 200 個前でもいい
●
今更そこまで戻るわけにもいかない
コミットを打ち消すコミット
●
その気になれば
– ブランチを作る
– 3 つ前まで戻る
– やり直す
●
本流 (master) はそう簡単には変えられない
●
コミットを打ち消すコミットを作ればいい
Revert
● Windows
– ログを表示
– 打ち消したいコミットで右クリック
– Revert change by this commit
● Mac
– 打ち消したいコミットで右クリック
– Rever commit
Revert (Windows)
Revert 完了 (Windows)
他にも方法はあります
●
この程度なら手動でもいい
●
“cherry-pick” が使えなくもない
– 本来の用途っぽく無いけど
●
“rebase” という最強の過去改変手段
– 世界線が移動します
– これも本来の用途っぽく無いけど
●
そもそも master ばかり弄ってはいけない
色々実験しましょう
●
リポジトリのディレクトリをコピー
●
リポジトリのバックアップになる
●
バックアップからやり直せる

More Related Content

Viewers also liked

地方のサテライトオフィスで働くエンジニアの仕事と地域との関わり
地方のサテライトオフィスで働くエンジニアの仕事と地域との関わり地方のサテライトオフィスで働くエンジニアの仕事と地域との関わり
地方のサテライトオフィスで働くエンジニアの仕事と地域との関わり健一 辰濱
 
Sansan における Android アプリ自動テスト導入事例
Sansan における Android アプリ自動テスト導入事例Sansan における Android アプリ自動テスト導入事例
Sansan における Android アプリ自動テスト導入事例健一 辰濱
 
[AWSマイスターシリーズ] AWS CLI / AWS Tools for Windows PowerShell
[AWSマイスターシリーズ] AWS CLI / AWS Tools for Windows PowerShell[AWSマイスターシリーズ] AWS CLI / AWS Tools for Windows PowerShell
[AWSマイスターシリーズ] AWS CLI / AWS Tools for Windows PowerShellAmazon Web Services Japan
 
絶対に描いてはいけないグラフ入りスライド24枚
絶対に描いてはいけないグラフ入りスライド24枚絶対に描いてはいけないグラフ入りスライド24枚
絶対に描いてはいけないグラフ入りスライド24枚itoyan110
 
見やすいプレゼン資料の作り方 - リニューアル増量版
見やすいプレゼン資料の作り方 - リニューアル増量版見やすいプレゼン資料の作り方 - リニューアル増量版
見やすいプレゼン資料の作り方 - リニューアル増量版MOCKS | Yuta Morishige
 
You Are Not As Rational As You Think
You Are Not As Rational As You ThinkYou Are Not As Rational As You Think
You Are Not As Rational As You ThinkYang Ao Wei 楊翱維
 

Viewers also liked (6)

地方のサテライトオフィスで働くエンジニアの仕事と地域との関わり
地方のサテライトオフィスで働くエンジニアの仕事と地域との関わり地方のサテライトオフィスで働くエンジニアの仕事と地域との関わり
地方のサテライトオフィスで働くエンジニアの仕事と地域との関わり
 
Sansan における Android アプリ自動テスト導入事例
Sansan における Android アプリ自動テスト導入事例Sansan における Android アプリ自動テスト導入事例
Sansan における Android アプリ自動テスト導入事例
 
[AWSマイスターシリーズ] AWS CLI / AWS Tools for Windows PowerShell
[AWSマイスターシリーズ] AWS CLI / AWS Tools for Windows PowerShell[AWSマイスターシリーズ] AWS CLI / AWS Tools for Windows PowerShell
[AWSマイスターシリーズ] AWS CLI / AWS Tools for Windows PowerShell
 
絶対に描いてはいけないグラフ入りスライド24枚
絶対に描いてはいけないグラフ入りスライド24枚絶対に描いてはいけないグラフ入りスライド24枚
絶対に描いてはいけないグラフ入りスライド24枚
 
見やすいプレゼン資料の作り方 - リニューアル増量版
見やすいプレゼン資料の作り方 - リニューアル増量版見やすいプレゼン資料の作り方 - リニューアル増量版
見やすいプレゼン資料の作り方 - リニューアル増量版
 
You Are Not As Rational As You Think
You Are Not As Rational As You ThinkYou Are Not As Rational As You Think
You Are Not As Rational As You Think
 

Similar to 20130608 git-1

20130608 git-2
20130608 git-220130608 git-2
20130608 git-2Kasu Unko
 
15分でわかるGit入門
15分でわかるGit入門15分でわかるGit入門
15分でわかるGit入門to_ueda
 
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
 
CIBC workshop by imagire
CIBC workshop by imagireCIBC workshop by imagire
CIBC workshop by imagireTakashi Imagire
 
LibreOffice を Windows 上でビルドする UPDATE2
LibreOffice を Windows 上でビルドする UPDATE2LibreOffice を Windows 上でビルドする UPDATE2
LibreOffice を Windows 上でビルドする UPDATE2Tomofumi Yagi
 
Windowsマシン上でVisual Studio Codeとpipenvを使ってPythonの仮想実行環境を構築する方法(Jupyter notebookも)
Windowsマシン上でVisual Studio Codeとpipenvを使ってPythonの仮想実行環境を構築する方法(Jupyter notebookも)Windowsマシン上でVisual Studio Codeとpipenvを使ってPythonの仮想実行環境を構築する方法(Jupyter notebookも)
Windowsマシン上でVisual Studio Codeとpipenvを使ってPythonの仮想実行環境を構築する方法(Jupyter notebookも)Daichi Kitamura
 
Gitで始めるバージョン管理
Gitで始めるバージョン管理Gitで始めるバージョン管理
Gitで始めるバージョン管理Daisuke Konishi
 
2018 07-18 git-hub講座
2018 07-18 git-hub講座2018 07-18 git-hub講座
2018 07-18 git-hub講座貴一 末田
 
GitHub入門 手順編
GitHub入門 手順編GitHub入門 手順編
GitHub入門 手順編hideaki honda
 
[Intermediate 02] シェルの使い方 / Git, GitHub について
[Intermediate 02] シェルの使い方 / Git, GitHub について[Intermediate 02] シェルの使い方 / Git, GitHub について
[Intermediate 02] シェルの使い方 / Git, GitHub についてYuto Takei
 

Similar to 20130608 git-1 (14)

20130608 git-2
20130608 git-220130608 git-2
20130608 git-2
 
15分でわかるGit入門
15分でわかるGit入門15分でわかるGit入門
15分でわかるGit入門
 
Gitはじめの一歩
Gitはじめの一歩Gitはじめの一歩
Gitはじめの一歩
 
今さら聞けない人のためのGitLabの始め方 Ubuntu編
今さら聞けない人のためのGitLabの始め方 Ubuntu編今さら聞けない人のためのGitLabの始め方 Ubuntu編
今さら聞けない人のためのGitLabの始め方 Ubuntu編
 
Python for Data Analysis第1回勉強会(+git入門)
Python for Data Analysis第1回勉強会(+git入門)Python for Data Analysis第1回勉強会(+git入門)
Python for Data Analysis第1回勉強会(+git入門)
 
CIBC workshop by imagire
CIBC workshop by imagireCIBC workshop by imagire
CIBC workshop by imagire
 
Git level1
Git level1Git level1
Git level1
 
LibreOffice を Windows 上でビルドする UPDATE2
LibreOffice を Windows 上でビルドする UPDATE2LibreOffice を Windows 上でビルドする UPDATE2
LibreOffice を Windows 上でビルドする UPDATE2
 
Windowsマシン上でVisual Studio Codeとpipenvを使ってPythonの仮想実行環境を構築する方法(Jupyter notebookも)
Windowsマシン上でVisual Studio Codeとpipenvを使ってPythonの仮想実行環境を構築する方法(Jupyter notebookも)Windowsマシン上でVisual Studio Codeとpipenvを使ってPythonの仮想実行環境を構築する方法(Jupyter notebookも)
Windowsマシン上でVisual Studio Codeとpipenvを使ってPythonの仮想実行環境を構築する方法(Jupyter notebookも)
 
Gitで始めるバージョン管理
Gitで始めるバージョン管理Gitで始めるバージョン管理
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入門 手順編
 
[Intermediate 02] シェルの使い方 / Git, GitHub について
[Intermediate 02] シェルの使い方 / Git, GitHub について[Intermediate 02] シェルの使い方 / Git, GitHub について
[Intermediate 02] シェルの使い方 / Git, GitHub について
 
Git overview (v 0.96)
Git overview (v 0.96)Git overview (v 0.96)
Git overview (v 0.96)
 

20130608 git-1