マージリクエストする#

(dev-br-name) $ git fetch origin
(dev-br-name) $ git rebase origin/main
(dev-br-name) $ git push --set-upstream origin dev-br-name
  • git fetch originで、ローカルにあるリモートブランチの参照を更新できます

  • git rebase origin/mainでメインブランチの更新を取り込むことができます

    • git rebaseすることでコミット履歴が直線的になります

    • git mergeでも構いません

  • git push --set-upstream origin ブランチ名で、GitLabリポジトリに対してプッシュしてください

  • プッシュした後、ターミナルにGitLab上にマージリクエスト作成の案内が表示されるので、それにしたがってMRを作成してください

  • このプロジェクトではメインブランチ(main)は保護されていて、直接プッシュすることはできません

コンフリクトした場合#

(dev-br-name) $ git rebase origin/main
# ここで "CONFLICT" のメッセージが出た場合

# 1. 衝突したファイルをエディタで開いて修正
# 2. 修正したファイルをステージ
(dev-br-name) $ git add 修正したファイル

# 3. 続けて rebase を再開
(dev-br-name) $ git rebase --continue
  • コンフリクト(変更内容の衝突)が生じた場合、ターミナルに"CONFLICT"のメッセージが表示されます

  • git statusで修正が必要なファイルを確認できます

  • 衝突が発生したファイルには <<<<<, =====, >>>>>の区切りが挿入されます

  • それぞれどちらのブランチの変更かを確認し、意図した内容に修正してください

  • 修正後は、ファイルをステージ(git add)し、リベースを再開(git rebase --continue)してください

    • すべてのコンフリクトが解消するまで、コンフリクトの修正 → ステージング → リベース再開、を繰り返してください

    • git rebase --abortでリベースを中断できます

メインブランチで作業してしまった場合#

(main) $ git merge origin/main
(main) $ git branch dev-br-name
(main) $ git switch dev-br-name
(dev-br-name) $ git push --set-upstream origin
  • うっかりローカルのメインブランチで作業してしまうこともあると思います

  • その場合は、一度ダミーの開発ブランチを作成してください

  • この手順でmainブランチの作業内容を保ったままプッシュできるようにないます

MR作成時のルール#

  • マージリクエストには必ず目的や変更内容を記述してください

  • レビュアーを指名したり、ラベルの設定も適切に行なってください