CI/CD入門
このぺーじでは、katacodaと呼ばれる「ブラウザから無料で勉強用のインスタンスを起動できるWebサービス」を利用してCI/CDを実践します
内容は上記リンクに沿うので、不明点があればそちらへどうぞ
Gitのバージョン管理について - Scenario6 - Experiments Using Branches
ここでは、CI/CDとして欠かせないGitによるバージョン管理について学習します
このシナリオで学習することをさっと確認する場合は概要を確認
理解に間違い等がございましたら、ぜひご指摘ください
概要
- branchの作成は、
git branch <new branch> <original branch>
や、git checkout -b <new branch>
- branchの一覧表示は、
git branch
。オプションとして-va
は頻繁に利用 - branchの統合は、マージ先branchで
git merge <branch>
- branchの削除は
git branch -d/D
Step 1 - Git Branch
gitを用いた開発では、ローカルレポジトリにmaster branchがデフォルトで作成される
このbranch上で直接開発を行うのではなく、複製した別のbranchを使うことでmaster branchにはローカルレポジトリ上での行うべき作業が行われたキレイな状態を維持することが可能
master branchをもとに別のbranchを複製する方法はgit branch <new_branch> <master branch>
で実現可能
branchの移動はgit checkout <to branch>
で実行
$ git branch -va
* ESC[32mmasterESC[m abe4241 First Commit on master
$ git branch new_branch master
$ git branch -va
* ESC[32mmaster ESC[m abe4241 First Commit on master
new_branchESC[m abe4241 First Commit on master
$ git checkout new_branch
Switched to branch 'new_branch'
$ git branch -va
master ESC[m abe4241 First Commit on master
* ESC[32mnew_branchESC[m abe4241 First Commit on master
また、git branch -b <new_branch>
で同様にbranchを作成し、branchの移動(git checkout <new_branch>
)も一度に行うことができる
$ git checkout -b test_branch
Switched to a new branch 'test_branch'
$ git branch -va
master ESC[m abe4241 First Commit on master
new_branch ESC[m c112293 Commit on branch
* ESC[32mtest_branchESC[m abe4241 First Commit on master
Step2 - List Branches
branchの一覧を確認する際はgit branch
で実現
以下のオプションはよく利用される
-a
:remote branchも表示。remotes/origin/master等
-v
:各branchの最新のコミットメッセージも表示
*は現在いるbranchを示している
$ git branch -va
master ESC[m 93f6d42 First Commit on master
* ESC[32mnew_branchESC[m 66ce3bf Commit on branch
$ git branch
masterESC[m
* ESC[32mnew_branchESC[m
$ git branch -v
master ESC[m 93f6d42 First Commit on master
* ESC[32mnew_branchESC[m 66ce3bf Commit on branch
Step 3 - Merge To Master
gitにおいて複製元は複製先の変更を自動的に反映されない
反映させるために、git merge
を用いる
$ ls -a
. .. .git staging.txt
$ git branch -va
* ESC[32mmasterESC[m bade7a5 First Commit on master
~~~branch作成、ファイル追加~~~ //katacodaでは、step3に入った際に自動的にファイルが作成されている
$ ls -a
. .. .git new-file-6.txt staging.txt
$ git branch -va
master ESC[m bade7a5 First Commit on master
* ESC[32mnew_branchESC[m 7a52803 Fix for Bug #58
$ git checkout master
Switched to branch 'master'
$ git merge new_branch
Updating bade7a5..7a52803
Fast-forward
new-file-6.txt | 1 +
staging.txt | 2 +-
2 files changed, 2 insertions(+), 1 deletion(-)
create mode 100644 new-file-6.txt
$ ls -a
. .. .git new-file-6.txt staging.txt
Step 4 - Push Branches
ローカルレポジトリでの変更が済んだら、リモートレポジトリに変更の反映を行う
ここでは、すでにPart3(katacodaにおけるScenario 3 - Working Remotely)で経験済みなので省略
ちなみに、git push
を初めて実行したことで、git branch -va
の結果にremotes/origin/master
branchが確認できるようになる
$ git branch -va
* ESC[32mmaster ESC[m 7a52803 Fix for Bug #58
new_branch ESC[m 7a52803 Fix for Bug #58
ESC[31mremotes/origin/new_branchESC[m 7a52803 Fix for Bug #58
Step 5 - Clean Up Branches
最後に、必要なくなったbranchの削除方法はgit branch -d <branch>
$ git branch -va
* ESC[32mmaster ESC[m 7a52803 Fix for Bug #58
new_branch ESC[m 7a52803 Fix for Bug #58
ESC[31mremotes/origin/new_branchESC[m 7a52803 Fix for Bug #58
$ git branch -d new_branch
Deleted branch new_branch (was 7a52803).
$ git branch -va
* ESC[32mmaster ESC[m 7a52803 Fix for Bug #58
ESC[31mremotes/origin/new_branchESC[m 7a52803 Fix for Bug #58
マージされていないbranchを削除する場合はオプション-D
を利用