GitLabでブランチを切ってMerge Requestを出す時のコマンドまとめ
GitLabを使ってチームで開発を進めている会社も多いかと思います。開発の仕事に関わっている方だと、「gitでdevelopからブランチ切ってMerge Request出しといて」なんて言われことがあるのではないでしょうか。慣れないうちは意味不明ですよね。本記事では、コマンドラインからMerge Requestを出す方法について初心者でもわかるようにご説明します。
目次
「ブランチを切る」とは
ブランチを切るとは、ある特定のブランチから枝分かれさせる形でそのブランチのコピーを作ることを指します。重要なブランチで直接ファイルを書き換えられてしまったりすると、コードにミスがあったり、他の人がそのブランチでなにかしらの作業をしているときに支障が出てしまうためこのような操作を行います。そのため、1回メインブランチのコピーを作ってそこでファイルなどの変更を行い、それをもとのブランチに戻すという操作をします。この元のブランチに戻す操作をmergeと呼び、そのmergeを依頼することをmerge request といいます。
ブランチを切ってmerge request を出す
開発チームの管理者でない限りはgitに直接mergeする権限がないことも多いため、merge requestを出し、レビューなどをしてもらってからmergeをしてもらうというのがよくある運用方法だと思います。Merge RequestはGitLab特有の表現です。普段GitHubなどを使う方はPull Requestまたはプルリクと同じものであると考えればよいでしょう。今回は次の図のようなツリー構造を持つgitを考えます。
実際の開発環境では、メインのブランチであるmasterブランチと、masterに反映する手前に用意されているdevelopブランチがあることがほとんどです。これを前提に、ブランチを切ってからmerge requestを出すまでの流れについて説明します。
ローカルにレポジトリを初めて落としてくる場合
コマンドラインで、自分がリポジトリを配置したいディレクトリに移動して下記のコマンドを打っていきます。
まずgitレポジトリをローカルにクローンし、developブランチに移動します。
git clone http://repository_name.git git checkout develop
ここで、developからブランチを切って新たな作業ブランチfix-api-bugを作成し、そのブランチに移動します。
git checkout -b fix_api_bug
または
git branch fix_api_bug git checkout fix_api_bug
作業ブランチでファイルを色々書き換えたあとは、git add でインデックスに追加し、git commit でコミット、最後にリモートレポジトリ origin にpushします。
git add <各ファイル名> OR git add . (編集した全てのファイル) git commit -m “fix api bug” git push origin fix_api_bug
すでにローカルにレポジトリをクローン済の場合
まずはdevelopブランチに移動し、git pull することでリモートレポジトリとローカルレポジトリを同じ状態にします。
git checkout develop git pull
残りの流れは、先ほどと同様にgit add, git commit を行い、最後にリモートレポジトリにpushします。
git checkout -b add_knn_model git add <各ファイル名> OR git add . (編集した全てのファイル) git commit -m “add knn model function” git push origin add_knn_model
gitの操作ミスを取り消したいときのコマンド
マージリクエストを出すまでにいくつかコマンドを打つ必要があるため、ミスをしてしまうことがあります。git add . をしたら関係ない周辺ファイルまでインデックスされてしまった、コミット文でスペルミスを見つけてしまったなど、直前の操作を取り消したい場合があると思います。よくあるgitコマンドの取り消し方法について簡単にまとめました。
git add を取り消したい場合
git reset
ちなみにこれは git reset –mixed HEAD を実行していることと同じです。
その辺りは、次の記事を参考にしてみてください。
https://qiita.com/shuntaro_tamura/items/db1aef9cf9d78db50ffe
git commitを取り消したい場合
git reset --soft HEAD^
まとめ
GitLabでブランチを切ってからMerge Requestまでの流れについておさらいしました。実際の業務ではさらに色々なコマンドを覚える必要がありますが、よほどのことがない限りはこれらのステップが理解できていれば問題ないと思います。エンジニアに限らず、ビジネスサイドの方でもgitを使う場面はあると思うので、この機会に確認しておいてはいかがでしょうか。