Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

本Hands Onのゴール Git/GitHubの細かな操作方法の説明 Linux環境構築/Git Bushインストール手順の説明 Gitを活用したsource code管理手順の概要把握 develop branchを使った基本操作手順の習得 featrue branchを使った開発時操作手順の習得 GitHubのrepository更新手順の習得 本Hands Onで行わないこと

Slide 3

Slide 3 text

実施内容 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への変更反映

Slide 4

Slide 4 text

実施内容 5.【実習】Feature branchで模擬開発 ① feature branchを作成して編集 ② localでのdevelopへのmergeとpush ③ featureをremoteへpushしてからmerge

Slide 5

Slide 5 text

1.Git userとssh keyの作成

Slide 6

Slide 6 text

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を入力

Slide 7

Slide 7 text

2.GitHubアカウント作成とremote接続

Slide 8

Slide 8 text

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を配置・登録

Slide 9

Slide 9 text

GitHubアカウント作成 https://github.com/ 指定された絵を選択→

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

pub keyの登録①

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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名

Slide 20

Slide 20 text

初期状態は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

Slide 21

Slide 21 text

VS Codeでdevelop branchにtest.pyを作成 branchコマンドで現在あるbranchを確認 Ubuntu:~/develop/TEST/$ code ↑develop branch ↓適当なcodeを書いて保存

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

GitHubにpush pass phraseを入力↑ localのdevelop branchをGitHubのremote repositoryにpushする Ubuntu:~/develop/TEST/$ git push origin develop

Slide 24

Slide 24 text

4‐②GitHub上でのpull requestとmerge

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

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を入力↓

Slide 31

Slide 31 text

4‐④main以外のlocal branchへの変更反映

Slide 32

Slide 32 text

他の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

Slide 33

Slide 33 text

5.【実習】Feature branchで模擬開発

Slide 34

Slide 34 text

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

Slide 35

Slide 35 text

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

Slide 36

Slide 36 text

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の初期化と編集”

Slide 37

Slide 37 text

5‐②localでのdevelopへのmergeとpush

Slide 38

Slide 38 text

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

Slide 39

Slide 39 text

GitHub(develop)にpushされた内容を確認 mainへのmerge(pull)は開発/改修の区切りで行う

Slide 40

Slide 40 text

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

Slide 41

Slide 41 text

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

Slide 42

Slide 42 text

Remoteでdevelopにmerge localからpushしたfeature1 merge後のdevelopの状態

Slide 43

Slide 43 text

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

Slide 44

Slide 44 text

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

Slide 45

Slide 45 text

参考文献 以下の記事を参考に学習・編集させていただきましたことに感謝し御礼申し上げます ⚫ 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

Slide 46

Slide 46 text

END