マージリクエストする#
(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作成時のルール#
マージリクエストには必ず目的や変更内容を記述してください
レビュアーを指名したり、ラベルの設定も適切に行なってください