2020/10/18

CodeCommitでGitブランチ作成・プルリクエスト・マージ(コンフリクト解決も)までの話

この記事ではCodeCommitでGitブランチの作成、プルリクエスト、ブランチのマージ、コンフリクトの解決方法を解説していきます。普段はGithub等の別のバージョン管理サービスを使用しているけど、AWS上でGit管理したいという方、AWS認定試験を受けようとしている方必見です!

CodeCommitを使用した経験がないという方やCodeCommit上にまだリポジトリを作成していないという方はこちらの記事もご覧ください!

CodeCommitでブランチを作成する

まず前提条件として、CodeCommitでリポジトリを作成し、作成したリポジトリをクローンするところまで実施してください。方法はこちらの記事で解説しています!

クローンしたディレクトリ上にいき、git checkoutコマンドを実行してください。

今回は例として「feature」ブランチを作成していきます。

git checkout -b feature

無事チェックアウトされました。

git checkout

ステータスを確認します。

git status

featureブランチに切り替わっていますね。

git status feature branch

新規作成ブランチでCodeCommitにプッシュする

featureブランチでソースコードに変更を加えて、CodeCommitリポジトリにプッシュしていきます。

まずは普通にgit pushコマンドを実行します。

git push

上流ブランチがないと怒られてしまいました。まだCodeCommit上のリポジトリにローカルで作ったブランチがなかったんですね。

git push failed

エラー文の中に記載されていたgit pushコマンドを実行します。

git push --set-upstream origin feature

いけた!!!

git push 成功

CodeCommitのコンソール画面を確認してみると、新しく作成したfeatureブランチを確認することができました。

CodeCommitブランチ作成成功

ブランチ一覧画面にも新たに作成したfeatureブランチがありますね!

CodeCommitブランチ一覧

CodeCommitでプルリクエストを出す

featureブランチをmasterにマージするべくプルリクエストを出していきます。

サイドメニューから「プルリクエスト」を選択して画面遷移した後、「プルリクエストの作成」ボタンをクリックして下さい。

プルリクエスト一覧

マージ先ブランチ(今回はmasterブランチ)とマージしたいブランチ(今回はfeatureブランチ)を選択し、「比較」ボタンをクリックします。比較ボタンをクリックすると正常にマージできるか、コンフリクトが起こっていないかをチェックしてくれます。

プルリクエスト作成 ブランチ比較

特に競合もなかったので、プルリクエストを作成していきます。タイトルは必須入力項目なので、プルリクエストのタイトルを入力していきます。説明は任意なので、今回は入力しません。

プルリクエストタイトルの入力が完了したら「プルリクエストの作成」ボタンをクリックします。

プルリクエスト作成

プルリクエストの作成が成功しました!!

プルリクエスト作成成功

「変更」タブをクリックするとソースコードの変更箇所も確認することができますね。

プルリクエストのソース変更箇所確認

プルリクエスト一覧画面にも作成したプルリクエストが反映されています。

プルリクエスト一覧 プルリクエスト後

プルリクエスト時に競合が起きた場合

プルリクエスト時に競合(コンフリクト)が起きた場合について解説していきます。

プルリクエストを作成する時にブランチ同士を比較し、競合が発生していると、「競合の解決」ボタンが出現します。このままではマージができないので、競合の解決ボタンをクリックしてください。

競合(コンフリクト)発生

ソースコードの中で競合(コンフリクト)が発生している箇所を確認します。

競合(コンフリクト)箇所の確認

競合(コンフリクト)箇所を解決しました。この状態で「プルリクエストの更新」ボタンをクリックします。

競合(コンフリクト)箇所の解決

競合(コンフリクト)が解決されてマージできそうですね!

競合(コンフリクト)箇所の解決・マージ

プルリクエストのマージ

プルリクエストの作成まで実施したので、ブランチをマージしていきます。

「マージ」ボタンをクリックして下さい。

マージ

何種類かのマージ戦略が表示されます。今回はとりあえずmasterブランチにマージできればいいので、「早送りマージ」を選択します。選択後、「プルリクエストのマージ」ボタンをクリックしましょう。また、マージ後にソースブランチを削除できる機能もあります。featureブランチはマージ後必要ないので、削除するにチェックを入れます。

不要なブランチが大量にできて後から不要ブランチ削除に時間を費やすのも面倒なので、チェックボックスのチェックで簡単に削除できるのは便利ですね!

プルリクエストのマージ

成功しました!! 

マージ成功

ブランチもしっかり削除されていますね!

マージ後ブランチ削除

まとめ

いかがでしたでしょうか?

ブランチ作成・プルリクエスト作成・プルリクエストのマージまでをみてきたのですが、かなり手軽できるなという印象です。これならGithubやGitLabなど他のGitバージョン管理サービスから移行してきた人もすぐに馴染めるのではないでしょうか。