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

JAWS-UG初心者支部#88わいわい初心塾(夏休みの宿題やったかGit編)

Avatar for おーつき おーつき
September 01, 2026

 JAWS-UG初心者支部#88わいわい初心塾(夏休みの宿題やったかGit編)

第3回コンテンツ:「バージョン管理の一歩目 ― Git ってなに?」
ゴールは「自走できる初心者」を増やすことです。

Git は、覚えるのが難しい。チーム開発で使えるようになるまでの壁も高い。 でもその手前で、こんな状態になっていないでしょうか。

コマンドを打つのが怖い(何が起きているか分からない)
Git / GitHub / GitLab / CodeCommit ・・・ うーん、違いは何?
そもそもファイル管理とコード管理が、まだ自分の中で結びついていない この会では、工夫や乗り越え方を語るより先に、使い方と基礎を確実に押さえます。 新人がファイル管理とコード管理を理解できないのは、仕方のないことです。だから、そこから手ほどきします。
この会で扱うこと
ファイル管理とコード管理は何が違うのか(Git を触る前の土台)
Git / GitHub / GitLab / CodeCommit の違い
コマンドラインとツール(GUI)の話
だれでも覚えられる、長年の研修で使ってきた「おまけ Tips」
最初にはまるポイント「コンフリクト」を避ける方法

Avatar for おーつき

おーつき

September 01, 2026

More Decks by おーつき

Other Decks in Technology

Transcript

  1. やる ・Gitをつかむ ・ファイルを管理する件 ・コンフリクトはまったら ・GUIとCLIについて ・(疑問に答える)Gitいろいろ やらない ・ハンズオン → オフラインでやろう

    ・Git数多のコマンド → 調べてみよう ・CI/CD,IaC戦略のたてかた → CFn初心者塾へ ・「えっ?VimとEmacs。マウス?キーボードでよくない?」みたいな会話
  2. まいにちこつこつと 毎日フォルダをコピーして、日付つけようぜ ・毎日作業開始前に +A オリジナル ・・・・ 2023 0908̲x +B 今日の作業

    x 2023 0910̲x ・・・・ 「20230910̲我らの案件名」 バックアップ向けに 年月日:YYYYMMDDを添えたフォルダをつけて作業に挑む。 ・なんなら「YMD+連番」「YMD+HMS」くらいの粒度にして 戻せるようにする
  3. 全ては、安全・安心のために、障害発生からの切り戻しと復旧の意識が大事 しくじり 作業中 ・・・ 作業中 破損 RTO 復旧後 復旧にかかる時間 Recovery

    Time Objective RPO RecoveryPointObjective RPO : 目標復旧時間 ・・・ 「どの時点まで」現状を戻せるか RTO:目標復旧時点 ・・・ 「どのくらいで」現状に戻せるか
  4. Gitって便利 $git コマンド init # 作成する clone #コピー持ってくる log #履歴見る

    commit {target} #登録する push #リモートにマージする pull #ローカルにマージする バーブ 動作・状態・出来事 オプション 初期に利用するコマンドを各自増やしてページも追加していこう https://git-scm.com/cheat-sheet
  5. ファイル運用 ファイルサーバ 上書きしちゃうよ連絡 OKだよ上書 オリジナ ル オリジナル 複製 上書き or

    フォルダ名を変える コピー 作業マシン 日々の作業 許可を得る・上書きしても いいか確認する バックアップ 作業 20230601̲作業 +A 差分比較 20230602̲作業 +B 20230603̲作業
  6. Git運用 プルリクエスト マージ GitServer ファイルサーバ リポジトリ マージコミット 上書きしちゃうよ連絡 ブランチ OKだよ上書

    オリジナ ル オリジナル クローン 複製 LocalPC & 日々の作業 +B LocalGit 上書き or フォルダ名を変える コピー 作業マシン プッシュ +B 日々の作業 コミット(日々の履歴が残る) プッシュ失敗 許可を得る・上書きしても いいか確認する ※すでに誰かが上書いてるので 後から更新する人は「マージ」する バックアップ ヒストリ (日々の履歴が残る) 作業 20230601̲作業 20230602̲作業 +B ディフ 日々の差分を見る +A 差分比較 +B 20230603̲作業
  7. この関係をまずは覚えよう チームメンバー共用の場所 ローカル環 作業ツリー PRJ01 ブランチ 自分だけの一時 保管場所 ※バージョン管理はできる PRJ01

    PRJ01otsuki PRJ01otsuki 作業中のローカル ファイル 外部サーバー ローカルリポジトリ PCが壊れたらデータも 消える リモートリポジトリ
  8. この関係をまずは覚えよう チームメンバー共用の場所 ローカル環 PRJ01 作業ツリー PRJ01 ブランチ PRJ01otsuki PRJ01otsuki 作業中のローカル

    ファイル 外部サーバー ローカルリポジトリ PCが壊れたらデータも 消える リモートリポジトリ
  9. この関係をまずは覚えよう 2.作業ツリーとローカル/リモートリポジトリ サーバにあるリモートリポジトリを ローカルに複製する ローカル環境内 Clone 変更を保存 変更を保存 変更が発生 変更が発生

    Checkout 外部サーバー ローカルリポジトリの中から 作業ツリーにするブランチを切り替える ローカル 作業マシン リポジトリ リポジトリ内でh、複数のブランチに分け リモート てコミットヒストリーを管理する リポジトリ
  10. 3. add/commit/push/fetch/pull/(STASH) 作業する Addしてステージング add commit Pushして サーバーに格納 push →commitして保存

    fetch stash 一時的に変更を 退避する pull リモートリポジトリとの同期を取る ※HEAD(ヒストリーの最新)を更新 する。 リモートリポジトリのソースを 作業ツリーへのソース反映は行わない。 取得する ※同ファイルに変更がある場合、 オートマージされる 作業ツリー ローカル リポジトリ リモート リポジトリ
  11. 3. add/commit/push/fetch/pull/(STASH) add commit $ git add . push $

    git commit –m ‘コミットメッセージ’ Pullする前は必ずfetch!! $ git push このあたりはGUIが おすすめ fetch stash $ git fetch $ git pull pull $ git stash $ git stash apply stash@{0} 一時退避 →退避リストの0番目に戻す 作業ツリー ローカル リポジトリ リモート リポジトリ
  12. 4.reset たとえば… ローカル環境内 • 動く状態に戻したい • Checkoutしたらcommitが溜まってた! • 別の人がpushした! ※自分の作業はgit

    stashしておこう こんなときに使える この変更を取り消したいとき $ git reset –hard origin/branch 変更をcommit/push 作業ツリー オプション沢山はあるので 必要になったら調べてみて ブランチ名:branch リモートリポジトリ ローカル 外部サーバー内 リポジトリ ブランチ名:origin/branch
  13. 5.rebase たとえば… • 親ブランチに、他ブランチがマージされた! 自分のブランチにその修正を取り込みたい こんなときに使えるよ ローカル環境 ヒストリーの順序を壊さずに自分の ブランチにマージする $

    git rebase --rebase-merges origin/develop 外部サーバー内 別の人が同じブランチに commitしたヒストリー 親ブランチから 子ブランチを作成 オプション沢山はあるので 必要になったら調べてみてね 作業ツリー リモートリポジトリ ブランチ名:branch ブランチ名:origin/develop
  14. 6.rebaseチートシート # 親子ブランチのローカルリポジトリを綺麗にする $ git checkout branch $ git reset

    --hard origin/branch $ git checkout develop $ git reset --hard origin/develop ローカル環 境 # 親ブランチに対して、子ブランチをリベースする $ git checkout branch $ git rebase --rebase-merges origin/develop 外部サーバー内 # con ict(競合)が発生したら手動修正してpush→リ ベースを続行する $ git rebase --continue 作業ツリー リモートリポジトリ # リベースを取りやめて元に戻す $ git rebase --abort ブランチ名:branch ブランチ名:origin/develop fl # 全てのリベースが終わったらpush $ git push -f origin/branch
  15. 恐れない使い方 Tips. 恐れない使い方 ブランチを分けよう 1人1ブランチ または 1機能1ブランチ の単位でブランチを作成しよう だっする コンフリクト

    チケットにひもづけよう タスク内容・コミットヒストリー・プルリクエスト(マージリクエスト)・備忘録etc…全て一括で管理する 毎日保存しよう PCはいつ壊れるかわからない。 マメにpushしよう!リモートリポジトリは動く状態を維持すること コミュニケーションを取ろう! 特に同じブランチを共用している場合は、COMMITが重なって競合する可能性もあります 「PUSHしました」「OK、PULLしまーす」のやり取りの声がけって意外と大事! なによりもコメントはしっかり書くこと。AIもgit 利用時のコメントはしっかり書いてるよ Commitログを見よう COMMITログを見る習慣をつけていけばリベースも怖くない リリース担当・変更管理担当者は必ず全体把握しておくこと ※みんなのソースの書き方から学べることも沢山ある
  16. 恐れない使い方 Tips. Git戦略 フィーチャーブランチ コツ: ・自分の作業 と だっする Git管理 他人の作業を分けよう

    ・・・ 自分の開発分 ・Masterhaブランチは永久保存版最後の砦 ・・・ Master の一歩前に ・リリースしたら・する時タグをこまめに切る Featureブランチ切る DevとかProd ブランチ切っておく ・・・ ・バージョンはこまめに分ける(アプリ、ライブラリ、共通、インフラ、システム) ※まとめると組み合わせや再リリースで死ぬ ・タグを打ち、リリース計画をチケット管理して 使い倒そう とくにDB・バックアップの紐付けは大事 ※Brunch戦略 に 過去の開発の失敗を思い返そう(#ifdef で区切ってた C言語の悪夢をやめよう)
  17. 恐れない使い方 雑学. タグの名前を変更する 雑学: タグの名前を変更する $ git tag 新しいタグの名前 古いタグの名前

    $ git tag -d 古いタグの名前 だっする Git管理 一つのコミットに対して複数のタグを打つことが出来る。 なので、変更後のタグを追加し、そのあとで古いタグを削除してしまえば、 リネームできる。 ※GitHubには タグのほかに リリース というもう一つのリリース計画に つけられるタグ独自の拡張機能がある。 ※ラベルというものもある、タグとラベルを使い分けるとコード管理はさらに 便利になる
  18. お便りコーナー Git GitHub GitLab Bitbucket GitBucket コマンド Saasサービス Duo 事実上の標準

    Git文化の尖った会社 サービスでは2024年にAmazonQDeveloperと組み合わせる 開発コミュニケーションツール 自前サーバとSaasの選択肢がある OSSとして国産のGitサーバとして提供され 様々な機能も提供される
  19. どう違うどう使う? 提供形態 認証 GitHub SaaS (Enterprise Serverで自社設置可) CI/CD GitHubアカウント Actions

    GitLab SaaS + セルフホスト (CE無償) 独自 / LDAP / SAML GitLab CI (同梱) Bitbucket SaaS + Data Center Atlassianアカウント Pipelines GitBucket OSSを自分で建てる (Scala/WARを配置するだけ) 自前DB / LDAP なし (Jenkins等利用) fl CodeCommit AWSマネージド IAM CodePipeline (HTTPS/SSH CodeBuild git-remote-codecommit) 向いている場面 事実上の標準。 OSS・採用・学習コスト すべて最安 Issue〜デプロイまで 1製品で完結させたい組織 Jira / Con uence を 既に使っている現場 閉域網・オンプレ、 外部SaaSが使えない現場 AWS内で完結させたい IAMで権限を一元管理したい
  20. みんなの学んでいるIAM IdentityCenter AWS CodeCommit へのアクセスには認証情報が必要です。これらの認証情報には、CodeCommit リポジトリなどの AWS リソー スへのアクセス権限、および Git

    認証情報や Git 接続に使用する SSH 公開鍵を管理するために使用する IAM ユーザーへのアクセ ス権が必要です。以下のセクションでは、AWS Identity and Access Management (IAM)と CodeCommit を使用してリソースへのア クセスを保護する方法について詳しく説明します。