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

About Git/Github

About Git/Github

This slide is description of Git and Github for our development team.

YushiroDodo63

April 21, 2022
Tweet

Other Decks in Technology

Transcript

  1. Git できること ”fuga”というファイルの 4~6行目を編集 作業内容の保存 - hoge |- fuga(update) ローカルリポジトリ

    リモートリポジトリ - hoge |- fuga 1 =========== 2 =========== 3 =========== 4 =========== 5 =========== 6 =========== 7 =========== 8 =========== 9 =========== 10 =========== 11 =========== 12 ===========
  2. Git できること このファイルを リモートリポジトリに共有 作業内容の保存 - hoge |- fuga(update) ローカルリポジトリ

    リモートリポジトリ - hoge |- fuga 1 =========== 2 =========== 3 =========== 4 =========== 5 =========== 6 =========== 7 =========== 8 =========== 9 =========== 10 =========== 11 =========== 12 ===========
  3. Git できること このファイルを リモートリポジトリに共有 作業内容の保存 - hoge |- fuga(update) ローカルリポジトリ

    リモートリポジトリ - hoge |-fuga(update) 1 =========== 2 =========== 3 =========== 4 =========== 5 =========== 6 =========== 7 =========== 8 =========== 9 =========== 10 =========== 11 =========== 12 ===========
  4. Git できること 共有されたファイルは 他の人も持ってこれる 作業内容の共有 - hoge |- fuga(update) ローカルリポジトリ

    リモートリポジトリ - hoge |-fuga(update) 1 =========== 2 =========== 3 =========== 4 =========== 5 =========== 6 =========== 7 =========== 8 =========== 9 =========== 10 =========== 11 =========== 12 ===========
  5. Git できること 共有されたファイルは 他の人も持ってこれる 作業内容の共有 - hoge |- fuga(update) ローカルリポジトリ

    リモートリポジトリ - hoge |-fuga(update) 1 =========== 2 =========== 3 =========== 4 =========== 5 =========== 6 =========== 7 =========== 8 =========== 9 =========== 10 =========== 11 =========== 12 =========== このおかげで チーム開発が非常にやりやすい
  6. 基本の使い方 Gitには大きく分けて 左の4つの状態がある Gitの状態 ワークツリー Work Tree インデックス ( ステージ

    ) Index ( Stage ) ローカルリポジトリ Local Repository リモートリポジトリ Remote Repository
  7. 基本の使い方 ファイルの編集をもとに戻したいとき 編集の取り消し Work Tree Index(Stage) Local Remote # 元々あったファイル

    command: git restore <ファイル名> ex: git restore hoge.txt ex: git restore . # 全て元に戻す # 新しく作成したファイル command: git clean <option> ex: git clean -f # ファイル ex: git clean -df # ディレクトリ
  8. Gitコマンド 見直し git checkout 変更を元に戻すコマンド git checkout <filename> git checkout

    . ブランチを変更するコマンド git checkout <branchname> git checkout -b <branchname>
  9. Gitコマンド 見直し git checkout 変更を元に戻すコマンド git checkout <filename> git checkout

    . ブランチを変更するコマンド git checkout <branchname> git checkout -b <branchname> 1つのコマンドで別々の処理ができる → わかりにくい!
  10. Gitコマンド 見直し git checkout 変更を元に戻すコマンド git restore <filename> git restore

    . ブランチを変更するコマンド git switch <branchname> git switch -c <branchname>
  11. コミット 一概にこれが正解!とは言えないが 基準として考えられることは • エラーがなく動く単位 • タスクの粒度によっては、 1issue1commit • 戻したい単位

    (ゲームのセーブと同じ単位) • renameやファイル移動 • タスクに関係がない修正 Work Tree Index(Stage) Local Remote Save
  12. リモートリポジトリ上の ブランチの状態を指すもの git branch -r で確認可能 Gitコマンド 見直し Local repository

    Remote repository リモートブランチ トラッキングブランチ ローカルブランチ リモートブランチ
  13. リモートブランチの内容を 追跡(トラッキング)するブランチ git branch -a で確認可能 Gitコマンド 見直し Local repository

    Remote repository リモートブランチ トラッキングブランチ ローカルブランチ トラッキングブランチ
  14. ローカルリポジトリにあるブランチ git branch で確認可能 Gitコマンド 見直し Local repository Remote repository

    リモートブランチ トラッキングブランチ ローカルブランチ ローカルブランチ
  15. リモートブランチから トラッキングブランチに 最新情報を持ってくるコマンド Gitコマンド 見直し Local Remote リモートブランチ トラッキングブランチ ローカルブランチ

    git fetch command: git fetch origin // <origin>は省略可 // 特定のブランチのみfetch command: git fetch origin master origin/master remotes/origin/master master
  16. トラッキングブランチから ローカルブランチに 最新情報を持ってくるコマンド Gitコマンド 見直し git merge // マージする先のブランチでコマンドを実行 command:

    git merge <マージ元のブランチ> // in master branch ex: git merge remotes/origin/master ex: git merge origin/master Local Remote リモートブランチ トラッキングブランチ ローカルブランチ master remotes/origin/master origin/master
  17. リモートブランチから トラッキングブランチを介して、 ローカルブランチに 最新情報を持ってくるコマンド Gitコマンド 見直し git pull command: git

    pull origin <branch name> ex: git pull origin master Local Remote リモートブランチ トラッキングブランチ ローカルブランチ master remotes/origin/master origin/master
  18. “git pull”の後の “origin” って何か =リポジトリのURLの別名 (あだ名) Gitコマンド 見直し ちょっと脱線 Local

    Remote リモートブランチ トラッキングブランチ ローカルブランチ master remotes/origin/master origin/master
  19. Gitコマンド 見直し Local repository Remote repository リモートブランチ トラッキングブランチ ローカルブランチ fetch

    merge pull pullは、リモートブランチから ローカルブランチに fetch + merge は、 リモートブランチから トラッキングブランチを介して、 ローカルブランチに
  20. Gitコマンド 見直し Local repository Remote repository リモートブランチ トラッキングブランチ ローカルブランチ fetch

    merge pull pullは、リモートブランチから ローカルブランチに fetch + merge は、 リモートブランチから トラッキングブランチを介して、 ローカルブランチに やっとること一緒やんけ! じゃあpullで良くない??
  21. Gitコマンド 見直し Local repository Remote repository リモートブランチ トラッキングブランチ ローカルブランチ fetch

    merge pull pullは、リモートブランチから ローカルブランチに直接マージする = コンフリクトが起こりやすい
  22. Gitコマンド 見直し Local repository Remote repository リモートブランチ トラッキングブランチ ローカルブランチ fetch

    merge pull fetch + merge は • リモートの内容をローカルに 反映する前に差分を確認したい = コンフリクトを防ぐため • pullするブランチ先をよく間違える 場合に用いると良い
  23. 手順 1. 確認用のブランチを作成 git switch -c review/issue1 2. プルリクが出されているブランチ からプルしてくる

    git pull origin feature/issue1 3. 修正点があったら修正して、 add, commit, pushする git push origin review/issue1:feature/issue1 4. 動作確認し問題ないならマージする Git 中級編 プルリクエスト(プルリク) の確認方法 (ローカルで何も作業してない時)
  24. 手順 1. プルリク確認用ディレクトリを作成 mkdir review_dir 2. git cloneする git clone

    <repository URL> 3. プルリクが出ているブランチに移動 git switch feature/issue1 4. 修正点があったら修正して、 add, commit, pushする git push origin feature/issue1 5. 動作確認し問題ないならマージする Git 中級編 プルリクエスト(プルリク) の確認方法 (ローカルで作業中の時)
  25. - Github上で解消 (簡単なコンフリクトならGithubで 解消可能) - コードを編集して解消 (複雑なコンフリクトの場合は、 実際にコードを編集して解消する) Git 中級編

    リモートリポジトリ hoge.txtの3行目を編集 hoge.txtの3行目を編集 コンフリクト コンフリクトの解消方法 Aさん Bさん
  26. 1. Resolve conflictsボタンをクリック 2. ファイルを修正 3. Mark as Resolvedボタンを クリック

    4. Commit mergeボタンをクリック Git 中級編 リモートリポジトリ hoge.txtの3行目を編集 hoge.txtの3行目を編集 コンフリクト Github上で解消 Aさん Bさん
  27. 1. コンフリクト解消用ブランチを作成 2. マージ先のブランチからプルする 3. ファイルを編集 4. add, commit, push

    5. プルリクを書いてマージする Git 中級編 リモートリポジトリ hoge.txtの3行目を編集 hoge.txtの3行目を編集 コンフリクト コードを編集して解消 Aさん Bさん
  28. Git 中級編 コードを編集して解消 コンフリクト解消用のブランチを作成 command: git switch -c <branch name>

    ex: git switch -c fix/conflict リモートリポジトリ hoge.txtの3行目を編集 hoge.txtの3行目を編集 コンフリクト Aさん Bさん
  29. Git 中級編 コードを編集して解消 マージ先のブランチからプル feature/conflict-4 ブランチから master ブランチにマージするときに コンフリクトが発生 =

    masterブランチからプル command: git pull origin <branch name> ex: git pull origin master 作業ブランチ (feature/conflict-4) コンフリクト解消ブランチ (fix/conflict-2) コンフリクト マージ先ブランチ (master) push pull