0
0

CodeCommit上のメインブランチの情報を作業ブランチに反映させたい

Posted at

はじめに

CodeCommitリポジトリの作業ブランチがメインブランチに遅れてしまっている場合に対処した方法を説明する。

問題

業務でメインブランチから作業ブランチを切り、その作業ブランチをローカルにクローンして作業をしていた。
作業が完了し、作業ブランチをCodeCommitにPUSH。
今回は検証のために作業ブランチをソースとしてCodeBuildでビルドを行った。

すんなりビルドが終わるだろうと思っていたが、まさかの失敗。
ビルドログを見てみると、今回の修正箇所とは関係ないエラーが発生していた。

どうやら、ブランチを切ったタイミングのメインブランチに不具合があったようで、その不具合が原因でビルドに失敗していた。

メインブランチではすでに不具合が解消されているため、作業ブランチにその反映を取り込みたい。
イメージはこんな感じ。
ブランチ2.png

解決方法

今回は簡易的な例で説明していく。
メインブランチを「main」、作業用ブランチを「feature/work」として聞いていほしい。

ローカルのmainブランチのディレクトリ構造は下記。
image.png

ローカルのfeature/workブランチのディレクトリ構造は下記。
image.png

まずはブランチの状態を確認。

git status

image.png

status状態がきれいであれば何もする必要なし。
作業用ブランチで作業中の場合はスタッシュを実行。

git stash save 作業用ブランチにメインブランチの情報を取り込むために一時退避

image.png

mainブランチに移動し、pull。

git pull

mainブランチにリモートのmainブランチの情報が反映される。
image.png

feature/workディレクトリに戻り、mainブランチの内容を反映させる。

git rebase main

成功すると以下のようなメッセージが返される。
image.png

たしかにmainブランチの情報が反映されていると確認できる。
image.png

スタッシュしていた内容を反映させる。

git stash apply stash@{0}

反映されたことを確認。
image.png

完了
image.png

おわりに

「mainブランチをpullして最新化し、そこから新たにブランチを切って変更箇所を反映」という方法もある。
今回の方法と比べてみて、自分が良い方を選択してみてください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0