3.4K Views
September 01, 23
スライド概要
2023/9/1 SWEST25
https://swest.toppers.jp/SWEST25/program#s3c
SeeedKKの中の人。Microsoft MVP for Internet of Things。
ぼっち開発から始めるGit MATSUOKA Takashi @matsujirushi12
✓ 事前にインストールしておくソフトウェア ✓ PCとWi-Fi接続 ✓ スライド https://speakerdeck.com/matsujirushi/botutikai-fa-karashi-merugit
MATSUOKA Takashi @matsujirushi12 「e」3つ 2017~ MVP for Windows Development 2020~ for Microsoft Azure 2022~ for Internet of Things 1991年大手メーカーに入社し、 工場の自動化や情報システム の開発、運用に従事。2017年8 月、Seeed株式会社設立時に 転職。組み込みデバイスの開 発環境整備やライブラリ開発 を担当。 ↑ ↑ 仕事 趣味
Open Hardware Modules Single Board Computer Industrial IoT Solutions Edge Computing & Private Cloud Microcontroller, Module & Extension Board Seeed Edge Computing Solution Wireless Node Sensor & Actuator
https://www.seeedstudio.com/make_sense_from_the_true_wild.html
Bazaar https://www.seeedstudio.com/ Wiki https://wiki.seeedstudio.com/ > 450 技術資料 Driver Library Catalog https://www.seeedstudio.com/make_sense_from_the_true_wild.html Wikiの ソース
ひとり開発(ぼっち開発)でも Gitは使える?
もちろん使えます。 Gitを使うと変更履歴の記録や確認、戻しがスマートに行えます。 費用はかかりません。無償です。 さらに、GitHubなどのホスティングサービスと連携すると、あなたの 大切なソースコードを守ってくれます。
ドラッグレース計測システム ProTree2013.YYYYMMDDx.zip 139ファイル
Git未使用 ① 変更履歴、書き忘れ ② zip忘れ ⑤ 特別扱い ③ zip解凍 ④ フォルダ比較
Git使用 変更の記録 (コミット) 変更の関係 (コミット履歴) 比較 (差分)
Lab1 インストール
Visual Studio Code 参考画面ショット: https://github.com/algyan/XIAOGYAN/blob/main/manuals/software/screenshot/install/vscode.md 1. 2. 3. 4. ブラウザでDownload Visual Studio Codeページ(https://code.visualstudio.com/download)を開いてください。 Windowsをクリックしてください。インストールファイルがダウンロードされます。 インストールファイルを実行してください。Visual Studio Codeのセットアップ画面が表示されます。 画面の指示にしたがってセットアップを完了してください。 • 使用許諾契約書の同意 - 同意するを選択 • 追加タスクの選択 - PATHへの追加(再起動後に使用可能)を選択 Git 参考画面ショット: https://github.com/algyan/XIAOGYAN/blob/main/manuals/software/screenshot/install/git.md 1. 2. 3. 4. 5. ブラウザでDownload Gitページ(https://git-scm.com/downloads)を開いてください。 Windowsをクリックしてください。Download for Windowsページが表示されます。 64-bit Git for Windows Setupをクリックしてください。インストールファイルがダウンロードされます。 インストールファイルを実行してください。Gitのセットアップ画面が表示されます。 画面の指示にしたがってセットアップを完了してください。 • Select Components - Git LFSとScalarを選択 • Choosing the default editor used by Git - Use Visual Studio Code as Git's default editorを選択 • Adjusting your PATH environment - Git from the command line and also from 3rd-party softwareを選択 Visual Studio Code拡張 参考画面ショット: https://github.com/algyan/XIAOGYAN/blob/main/manuals/software/screenshot/install/vscodeext.md ※ PlatformIOの部分は不要 1. Visual Studio Codeを起動してください。 2. EXTENSIONS画面でMS-CEINTL.vscode-language-pack-ja(Japanese Language Pack for Visual Studio Code)を検索してインストールしてく ださい。 3. Visual Studio Codeを再起動してください。 4. 拡張機能画面でmhutchie.git-graph(Git Graph)を検索してインストールしてください。 5. Visual Studio Codeを再起動してください。
Lab2 予備知識
!=
“Git(ギット)は、プログラムのソースコードなどの変更履歴を記録・追跡するための 分散型バージョン管理システムである。Linuxカーネルのソースコード管理に用い るためにリーナス・トーバルズによって開発され、それ以降ほかの多くのプロジェクトで採用 されている。” https://ja.wikipedia.org/wiki/Git “GitHub(ギットハブ)は、ソフトウェア開発のプラットフォームであり、 ソースコードをホスティング する。コードのバージョン管理シ ステムにはGitを使用する。” https://ja.wikipedia.org/wiki/GitHub
Git / GitHub github.com リポジトリ#1 Remote Repository リポジトリ#1 Local Repository Issues Pull requests リポジトリ#2
作業エリア / リポジトリ / 追跡 作業エリア 作業フォルダー プロジェクトフォルダー リポジトリ 追跡対象外 (Untracked) 追跡対象 (Tracked) ✓ ✓ ✓ ✓ 作業エリアのファイルを追跡してリポジトリに記録 リポジトリは.gitフォルダー .gitignoreで追跡を無視 作業エリアの削除はフォルダー削除でOK 追跡無視 .gitignore templates https://github.com/github/gitignore
未変更 / 変更 / ステージ と コミット、チェックアウト Tracked 作業エリア Commit 記録(追加) 変更の記録 ✓ ファイルはUntrackedかTracked ✓ ファイルを変更するとUnmodified -> Modified ✓ コミットするとStagedをひとまとめにしてリポジトリへ記録 ✓ コミットを作業エリアへ展開するときはチェックアウト チェックアウト リポジトリ
コミット履歴 / タグ / ブランチ コミット履歴 #1 コミット 1回目 コミット履歴 #2 コミット 2回目 mainブランチで コミットすると… コミット 2回目 コミット 3回目 ブランチ - main ブランチ - main タグ – v1.0 ブランチ - main タグ – v1.0 変更の関係 ✓ コミットの履歴はコミット履歴 ✓ コミットに名前を付けることができる。タグとブランチ ✓ タグはコミットの別名 ✓ ブランチは作業エリアの選択に使う コミット 1回目
分岐 / マージ コミット履歴 #1 コミット履歴 #2 main bugfix v1.0 main v1.0 コミット履歴 #4 コミット履歴 #3 main bugfix bugfix 変更の関係 ✓ 分岐という操作は無い(ブランチを作ってコミット) ✓ マージは細心の注意を マージ v1.0 main v1.0 分岐
1. リポジトリ化 Lab3 基本操作 2. 変更の記録 3. 分岐 4. マージ
1-1. リポジトリを作成 空のリポジトリを作成します。 1. 作業エリア(ここではC:\swest25s3c\myrepo)に移動して、git initコマンドを実行 C:\> mkdir swest25s3c C:\> cd swest25s3c C:\swest25s3c> mkdir myrepo C:\swest25s3c> cd myrepo C:\swest25s3c\myrepo> git init Initialized empty Git repository in C:/swest25s3c/myrepo/.git/ C:\swest25s3c\myrepo> エクスプローラーのオプションで「隠し フォルダーを表示する」にすると、.git フォルダーを見ることができます。
1-2. ReButtonAppをコピー 以降、履歴が入っているリポジトリを使いたいので、GitHubにあるReButtonAppをコピーします。 1. C:\swest25s3cに移動して、 git cloneコマンドを実行 C:\> cd swest25s3c C:\swest25s3c>git clone https://github.com/SeeedJP/ReButtonApp Cloning into 'ReButtonApp'... remote: Enumerating objects: 489, done. remote: Counting objects: 100% (58/58), done. remote: Compressing objects: 100% (24/24), done. remote: Total 489 (delta 43), reused 37 (delta 34), pack-reused 431 Receiving objects: 100% (489/489), 136.64 KiB | 3.50 MiB/s, done. Resolving deltas: 100% (296/296), done. C:\swest25s3c>
1-3. VSCodeで開く メニューバー アクティビティバー サイドバー エディターグループ パネル ステータスバー
1-3. VSCodeで開く エクスプローラー ソース管理
1-3. VSCodeで開く VSCodeで作業エリアを開きます。 1. 「ファイル > フォルダーを開く」を実行して、作業エリア(C:\swest25s3c\ReButtonApp)を開く 「このフォルダー内のファイルの作成者 を信頼しますか?」が表示されたときは、 「はい、作成者を信頼します」をクリックし てください。
1-3. VSCodeで開く 変更履歴
1-4. 追跡無視を設定 追跡無視の振る舞いを確認します。 1. ReButtonApp.objファイルを作成 2. ソース管理画面を確認 3. .gitignoreファイルに*.objを追記 4. ソース管理画面を確認
2. 変更の記録 ReButtonApp.inoの変更を記録します。 v2/main
2-1. チェックアウト 1. v2/mainを右クリックして、Checkout Branchを選ぶ (既にチェックアウトしているときは、Checkout Branchが表示されません)
2-2. 変更 1. ReButtionApp.inoを変更
2-3. コミット 1. メッセージを記入してコミット
2-4. (ファイルをステージング) Stagedが無いときは、Modifiedがコミットされます。(VSCodeの振る舞い) コミット対象
3. 分岐 v2/mainを分岐して、v2/devへ変更を記録します。 v2/dev v2/main
3-1. ブランチを作成 1. 対象のコミットを右クリックして、Create Branchを選ぶ
3-2. 変更してコミット 1. ReButtonApp.inoを変更してコミット
4. マージ v2/devをv2/mainへマージします。 v2/main v2/dev
4-1. チェックアウト 1. 変更するブランチ(v2/main)をチェックアウト
4-2. マージ 1. 変更内容のブランチ(v2/dev)を右クリックして、Merge into current branchを選ぶ
Lab3 まとめ 1. 作業エリア/リポジトリ/追跡 ✓ mkdir ✓ git init / git clone ✓ .gitignore 2. 変更とコミット ✓ チェックアウト ✓ ステージング ✓ コミット 変更の記録 3. 分岐 ✓ ブランチ作成 4. マージ ✓ チェックアウト ✓ マージ 変更の関係
1. ブランチ戦略 2. コーディングスタイル 3. ファイル分割 Lab4 応用 4. ステージングの使い方 5. コミットの頻度 6. 変更履歴の分析 7. バックアップ
Gitに適した 運用ルール大事
1. ブランチ戦略 ✓ 主軸は「main」ブランチ ✓ 開発中は「dev」ブランチ ✓ 要望/不具合毎にブランチを追加 ✓ 早急に「main」ブランチへマージ ✓ (変更の関係を編集する機会を減らす) https://nvie.com/posts/a-successful-git-branching-model/
2. コーディングスタイル ✓ 不要なコードや ファイルは削除
2. コーディングスタイル https://twitter.com/yaneuraou/status/1688432928521596928 ✓ 自動整形ツール使う
3. ファイル分割 ✓ ファイルを分割
4. コミットの頻度 ✓ devブランチは細かく ✓ mainブランチはまとめて
5. ステージングの使い方 Staged Modified ✓ コンパイルが通ったらStaged ✓ 動作確認したらコミット
6. 変更履歴の分析 ✓ ツール多数(この例は、GitLens) ✓ 行ごとの履歴
7. バックアップ ✓ GitHubのプライベートリポジトリにバックアップ ✓ コード漏洩のリスクあり? https://zenn.dev/miyajan/scraps/3567cee380280c github.com リポジトリ#1 Remote Repository リポジトリ#1 Local Repository https://github.co.jp/pricing