Upgrade to Pro — share decks privately, control downloads, hide ads and more …

はじめてのGit

d_hirayama
December 27, 2018

 はじめてのGit

社内向けに作成した資料を公開します。
新人研修の資料としても使えるよう、バージョン管理システムそのものの説明も入れていますが、主にこれまでVSS・SVNなど他のバージョン管理システムを使っていた人を対象に「なぜGitを使うのか?」「Gitは他のバージョン管理システムと何が違うのか」をテーマに「分散型リポジトリ」「ブランチ」を中心にGitの考え方を説明しています。

一部社内の事情を踏まえた表現・内容もありますがご容赦ください。

d_hirayama

December 27, 2018
Tweet

Other Decks in Programming

Transcript

  1. もくじ 1. Gitとは 2. Gitの何がそんなにいいのか 3. Gitのツール 4. 「分散型」を理解しよう 5.

    ブランチを使ってこそGit 6. SourcetreeでGitを使おう -初級編- 1. クローン 2. プル 3. チェックアウト 4. ブランチ作成その1 5. ブランチ作成その2 6. ブランチの切替 7. ステージ 8. コミット 9. プッシュ 10. マージ 11. 破棄
  2. 色々なバージョン管理システム • 共有フォルダ 日付や人別にフォルダを作成 • VSS(Microsoft Visual Source Safe) VisualStudio2005までの標準ツール

    • CVS(Concurrent Versions System> 1990年に作成されたフリーウェア • SVN(Apache SubVersion) CVSの問題点を解決すべく開発された • Git
  3. 共有フォルダ • お手軽簡単 • わかりやすい • バックアップも楽 • 本当に状態が維持できている保証 がない(ファイル足りてないかも。

    うっかり誰か触ってるかも) • 複数人が同時作業するとマージが 辛い(WinMerge使うとはい え・・・) • どんどん増えがち(日付付きフォ ルダ) • 差分がわかりづらい(WinMerge) • 容量多くなりがち(コンパイル後 ファイルは入れないで!) • コメントつけにくい
  4. VSS • 「誰が」「いつ」「何を」 「なぜ」変更したかわかる! • 変更差分だけを管理するため 容量が減らせる • ある時点の状態のソースを取 り出せる

    (↑ここまで以降省略) • ファイルをロックするので共 同作業しても壊す心配がない。 わかりやすい。 • 複数ファイルを1回でコミッ トできる • ロックするので同時に作業できな い • ロックしたまま帰らないで!!! • Windowsでしか使えない • 有償(Visual Studio Professional に同梱) • 既に開発終了
  5. CVS • ファイルロックしないので同 時作業も可能 • リポジトリがほぼ元のテキス トファイルのままなので簡単 に見れる • フリーウェア!!!

    • 複数ファイルを1まとまりと してコミットできない。(1 ファイルずつの連続したコ ミットになる) • 文字コードが危険
  6. SVN • 複数ファイルを1まとまりで コミットできる • 文字コードも大丈夫 • フリーウェア!!! • 複数バージョンの並行管理

    (本番環境用、検証環境用、 開発環境用、障害対応中)が 辛い • マージがしんどい • リポジトリにつながらないと コミットできない
  7. Git • 強力なブランチ機能 • 複数バージョンの並行管理も楽 • 複数案件の並行作業も安心 • 分散型なのでローカルでもコ ミットできる

    • マージが楽 • GitHub等のリポジトリサービ スが使える • 従来のものと考え方が違うと ころがあるので、最初全然わ からない。怖い • Git自体には権限管理機能が無 いので誰でもmasterが触れて しまう • リポジトリにはバイナリで保 存されてるのでツール使った りコマンド叩かないとソース 見れない
  8. • 従来のものと考え方が違うと ころがあるので、最初全然わ からない。怖い • Git自体には権限管理機能が無 いので誰でもmasterが触れて しまう • リポジトリにはバイナリで保

    存されてるのでツール使った りコマンド叩かないとソース 見れない この資料で解決! Gitbucketなら管理できる! GitbucketならWebで見れ る!
  9. 比較 VSS CVS SVN Git 価格 有償 フリー フリー フリー

    ハードル 低い 低め 低め チョットタカイ ファイルロック ロックする しない しない しない 一括コミット できる できない できる できる ブランチ機能 なし サブフォルダ方式 サブフォルダ方式 リポジトリで管理 ソース自体を入替 集中/分散 集中型 集中型 集中型 分散型 リポジトリのソー ス バイナリ テキスト バイナリ バイナリ 管理対象 ファイル テキストファイル ファイル 行 マージ 衝突しない! 辛い 辛い わりと自動でいけ る コミット番号 連番 連番 連番 ハッシュ
  10. Git / Git for windows • Gitそのもの https://git-scm.com/ • Windows用のGit

    https://gitforwindows.org/ • これさえインストールすればGitが使える! • CUIツールなのですべてコマンドラインで実行
  11. ブランチが無いと? • 異なる作業を1つの履歴で管理しないといけない 1 2 新画面レイアウト master 3 表示処理実装 4

    緊急バグ対応 5 更新処理実装 差分を抜き出して本番に反映 3で変更した共通処理でしか正しく動かない!!!
  12. 1 2 3 4 このURLをコピーする (Gitbucketの場合) 1. 新しいタブでCloneを選択 2. 対象のリポジトリを入力

    3. 保存するフォルダ、ローカルでのリポジト リ名を入力 4. 「クローン」をクリック
  13. 1 2 3 1. 「ファイルステータス」タブを表示 2. 追加、変更、削除があれば自動的に一覧 される (表示されないときは「F5」で再読込) 3.

    ステージするものを行選択して「選択を インデックスに追加」 すべてステージするなら「全てインデッ クスに追加」
  14. 1 3 2 4 5 6 1. コミット対象がステージされているか? 2. 内容は間違いないか?

    3. ステージ漏れがないか? 4. ユーザー情報が正しいか? 5. コミットコメントを記載 6. すぐにプッシュして大丈夫か?
  15. コミットコメントには何を書くべきか? Gitではいわゆる5W1Hがそれぞれ次のように記録される WHO - 著者・auther(ユーザー情報) WHAT - ステージしたファイル一覧 WHEN -

    コミットした日時 HOW - 変更前後の内容 WHEREとWHYは自動的に記録されない。どこで作業をしたかが重要なことはあまりないので通常は 記載する必要はないため、「なぜその変更を行ったか」をコミットコメントに記載するのが最も重要 となる。 例えば「顧客要望により機能追加」「障害管理表No.37の対応」など。 加えて変更内容の簡単なまとめがあると後から見やすいし他者のレビューも楽になる。 日付や名前は自動記録と重複するので不要。 who when what how why