$30 off During Our Annual Pro Sale. View Details »

Git・GitHub未経験者向け導入講習資料

nsaito9628
December 11, 2021

 Git・GitHub未経験者向け導入講習資料

今回も集合研修での利用も想定したスライド形式で作成しました。

使用するGitコマンドは
 git config --global user.email
 git config --global user.name
 git clone
 git branch
 git checkout
 git status
 git add
 git commit
 git push
 git fetch
 git pull
のみで共同開発を想定したチュートリアルとはなっていません。

また、LinuxまたはGit bushの環境が準備済みなのを前提に説明します。

nsaito9628

December 11, 2021
Tweet

More Decks by nsaito9628

Other Decks in Programming

Transcript

  1. Git/GitHub 未経験者向け導入講習 @Saito5656 2021. 06. 01 2021. 10. 11⊿1 2022.

    09. 08⊿2
  2. 本Hands Onのゴール Git/GitHubの細かな操作方法の説明 Linux環境構築/Git Bushインストール手順の説明 Gitを活用したsource code管理手順の概要把握 develop branchを使った基本操作手順の習得 featrue

    branchを使った開発時操作手順の習得 GitHubのrepository更新手順の習得 本Hands Onで行わないこと
  3. 実施内容 1.Git userとssh keyの作成 2.GitHubアカウント作成とremote接続 3.Branchによるphase別code管理の概要 4.develop branchを使った操作実習 ①localでの編集作業と履歴入力 ②GitHub上でのpull

    requestとmerge ③local main branchへの変更反映 ④main以外のlocal branchへの変更反映
  4. 実施内容 5.【実習】Feature branchで模擬開発 ① feature branchを作成して編集 ② localでのdevelopへのmergeとpush ③ featureをremoteへpushしてからmerge

  5. 1.Git userとssh keyの作成

  6. Ubuntuコンソールを立ち上げて実効 # UbuntuのコンソールからGit user名とuser emailを登録しssh keyを作成 Ubuntu:~$ git config --global

    user.name "【ユーザー名】" Ubuntu:~$ git config --global user.email 【ユーザーemail】 Ubuntu:~$ ssh-keygen -t rsa -b 4096 -C " 【ユーザーemail】 " Ubuntu:~$ chmod 600 ~/.ssh/【ssh-key名】 デフォルト以外にする場合PATHとkey file名を入力 pass phraseを入力
  7. 2.GitHubアカウント作成とremote接続

  8. Hostの登録 User下の.sshにconfigファイルを作りHostを登録する Ubuntu:~/$ cd .ssh Ubuntu:~/.ssh/$ sudo nano config #以下の内容を登録

    Host XXXXXXX HostName github.com User git Port 22 IdentityFile ~/.ssh/”ssh-key名” TCPKeepAlive yes IdentitiesOnly yes ←任意のssh Host名 ↓作成したssh-keyを配置・登録
  9. GitHubアカウント作成 https://github.com/ 指定された絵を選択→

  10. アカウントのverification ↑本来はボタンimageが出る

  11. pub keyの登録①

  12. pub keyの登録② pub keyを張り付け ←SSH keyの名前(任意)

  13. localからGitHubへの疎通確認 configファイルに登録したHostへssh接続する Ubuntu:~/$ ssh XXXXXXX pass phraseを入力↓

  14. 3.Branchによるphase別code管理の概要

  15. 開発・運用の各phase別に管理する仕組み 引用元:https://engineer-life.dev/git-operation-rule/ #以下に示すGitFlowではmainとdevelopで実際の作業は行わない main モジュール別の開発 ←release後のバグ取り等

  16. 4.develop branchを使った操作実習

  17. 4‐①localでの編集作業と履歴入力

  18. GitHub上にprivate repositoryを作成 #repository名をTESTとする

  19. TEST repositoryをlocalにclone 作業directoryを作成してTEST repositoryをcloneする Ubuntu:~$ mkdir develop Ubuntu:~$ cd develop

    Ubuntu:~/develop/$ git clone 【.ssh/configのHost名】:【GitHubアカウント名】/TEST.git 特定branchからcloneする Ubuntu:~/develop/$ git clone -b branch名【.ssh/configのHost名】:【GitHubアカウント名】/TEST.git cloneしたTEST repositoryに移動 Ubuntu:~/develop/$ cd TEST Ubuntu:~/develop/TEST/$ pass phraseを入力↑ ↓repository名
  20. 初期状態はmain、develop branchを作成 branchコマンドで現在あるbranchを確認 Ubuntu:~/develop/TEST/$ git branch *main develop branchを作成してmainにいることを確認 Ubuntu:~/develop/TEST/$

    git branch develop Ubuntu:~/develop/TEST/$ git branch develop *main checkoutコマンドでdevelop branchに移動してdevelopにいることを確認 Ubuntu:~/develop/TEST/$ git checkout develop Ubuntu:~/develop/TEST/$ git branch *develop main
  21. VS Codeでdevelop branchにtest.pyを作成 branchコマンドで現在あるbranchを確認 Ubuntu:~/develop/TEST/$ code ↑develop branch ↓適当なcodeを書いて保存

  22. test.pyをバージョン管理対象に追加 test.pyの現状では管理対象になっていない Ubuntu:~/develop/TEST/$ git status addコマンドでステージングしてGitのcommit対象にする Ubuntu:~/develop/TEST/$ git add test.py

    commitするとエディター(ここではnano)が開くのでコメントを入力して保存 Ubuntu:~/develop/TEST/$ git commit -a
  23. GitHubにpush pass phraseを入力↑ localのdevelop branchをGitHubのremote repositoryにpushする Ubuntu:~/develop/TEST/$ git push origin

    develop
  24. 4‐②GitHub上でのpull requestとmerge

  25. localからpushしたbranchの生成を確認 Compare & pull requestからmargeのためのpull request画面に進む

  26. developからmain branchへのmarge pull request ←commit時のコメント pull requestのmarge pull requestのコメント↓

  27. margeの確認 ここからdevelopを消すことも可能↓ Compare & pull requestからmargeのためのpull request画面に進む

  28. main branchへのtest.py追加を確認

  29. 4‐③local main branchへの変更反映

  30. marge後のremote repositoryをlocalに反映 現在のbranchを確認 Ubuntu:~/develop/TEST/$ git branch *develop main main branchに移動してmainにはtest.pyがないことを確認

    Ubuntu:~/develop/TEST/$ git checkout main Ubuntu:~/develop/TEST/$ ls README.md test.pyがclone出来ていることを確認 Ubuntu:~/develop/TEST/$ git pull Ubuntu:~/develop/TEST/$ ls README.md test.py pass phraseを入力↓
  31. 4‐④main以外のlocal branchへの変更反映

  32. 他のlocal 環境の差分を現在の環境に反映 現在のbranchを確認してremote branchを最適化 Ubuntu:~/develop/TEST/$ git branch *develop main Ubuntu:~/develop/TEST/$

    git fetch 現在のlocal branchに特定のremote branchの差分をpullする(下の例はremote develop->local develop) Ubuntu:~/develop/TEST/$ git pull origin develop:develop Ubuntu:~/develop/TEST/$ ls
  33. 5.【実習】Feature branchで模擬開発

  34. 5‐①feature branchを作成して編集

  35. developからfeatureを作成 branchコマンドで現在あるbranchを確認 Ubuntu:~/develop/TEST/$ git branch *develop main feature branchを作成してdevelopにいることを確認 Ubuntu:~/develop/TEST/$

    git branch feature1/init_README.md Ubuntu:~/develop/TEST/$ git branch feature1/init_README.md *develop main checkoutコマンドでfeature branchに移動してfeatureにいることを確認 Ubuntu:~/develop/TEST/$ git checkout feature1/init_README.md Ubuntu:~/develop/TEST/$ git branch *feature1/init_README.md develop
  36. featureで開発したcodeを管理対象に追加 test.pyのチュートリアルと同様に確認 Ubuntu:~/develop/TEST/$ git status チュートリアルと同様にaddコマンドでステージング Ubuntu:~/develop/TEST/$ git add xxxx.py

    Commitしてコメントを入力して保存 Ubuntu:~/develop/TEST/$ git commit –m “README.mdの初期化と編集”
  37. 5‐②localでのdevelopへのmergeとpush

  38. developにmergeしてGitHub(develop)にpush pass phraseを入力↑ Feature branchでcommitした内容をdevelop branchにmergeする Ubuntu:~/develop/TEST/$ git merge feature1/init_README.md

    localのdevelop branchをGitHubのremote repositoryにpushする Ubuntu:~/develop/TEST/$ git push origin develop checkoutコマンドでdevelop branchに移動してdevelopにいることを確認 Ubuntu:~/develop/TEST/$ git checkout develop Ubuntu:~/develop/TEST/$ git branch feature1/init_README.md *develop
  39. GitHub(develop)にpushされた内容を確認 mainへのmerge(pull)は開発/改修の区切りで行う

  40. 5‐③featureをremoteへpushしてからmerge

  41. developにmergeしてGitHub(develop)にpush checkoutコマンドでdevelop branchに移動してdevelopにいることを確認 Ubuntu:~/develop/TEST/$ git push origin feature1/ mod_for-loop pass

    phraseを入力↑
  42. Remoteでdevelopにmerge localからpushしたfeature1 merge後のdevelopの状態

  43. 開発の区切りでdevelopをmainにmerge Merge元のdevelop merge後のmainの状態

  44. localとremoteを整合する remoteのpull Ubuntu:~/develop/TEST/$ git pull developとfeature branchの削除 Ubuntu:~/develop/TEST/$ git checkout

    main Ubuntu:~/develop/TEST/$ git branch –d develop Ubuntu:~/develop/TEST/$ git branch –d feature1/ init_README.md
  45. 参考文献 以下の記事を参考に学習・編集させていただきましたことに感謝し御礼申し上げます ⚫ https://eh-career.com/engineerhub/entry/2017/01/31/110000 ⚫ https://engineer-life.dev/git-operation-rule/ ⚫ https://qiita.com/y-okudera/items/0b57830d2f56d1d51692 ⚫ https://note.com/bnctake/n/n5d70bb413be9

    ⚫ https://takobonge.hatenablog.com/entry/2014/03/30/001459 ⚫ https://qiita.com/hinatades/items/d47dec72a87c5fed50f7 ⚫ https://qiita.com/is_mgmt_dept/items/4c16b31e0b81e9d1a8fb
  46. END