Gitを使いこなそう!【リベース編】

Git

こんにちは、ECF Tech
ブログ担当 Michiharu.Tです。

Gitシリーズの第9回をお送りしたいと思います。前回から内容が少しだけ応用的になってきたので、「Gitを使いこなそう!」にタイトルを変更してお送りしています。よろしくお願いします。

今回は「リベース編」です。多くのブランチに枝分かれしたコミット履歴をキレイにする手法です。

対象読者

  • gitの基本的なコマンドを知っている方( init, add, commit, pushなど)
  • gitをもう少しつっこんで学びたい方

本記事は、Gitシリーズ連載記事の1つとなっています。もし最初からご覧になりたい方は下のリンクをご活用ください。

Git
Gitの事を、学んで試せるページとなっています。初めてGitを利用される方に最適です。ぜひご活用ください。

ハンズオン

それではハンズオン(実際に動作させながら学ぶ)をしながら、どのような動きを見ていきましょう。

事前準備

それでは早速いきましょう。Windows10での動作環境を前提に進めていきます。

適当なフォルダを作成し、 git initコマンドを実行します。ここではC:\work01を作成し実行します。

同フォルダに新規ファイルを作成し、次のようにします。ファイル名はfile01.txtとします。

保存したら、コミットしてしまいましょう。

file01.txtをもう1度編集しましょう。次のようにします。

再びコミットします。

ではここでブランチを作成しましょう。次のコマンドを実行します。

displayブランチが作成され、移動しました。

ここで新規ファイル(file02.txt)を作成します。内容は次のようにします。

保存したらコミットしてしまいましょう。

file02.txtをもう一度編集します。次の内容とします。

保存したら、コミットします。

では再度、masterブランチに戻ります。

file01.txtを編集します。

保存したらコミットです。

長くなりましたがこれで準備は完了です。ここまでのコミット履歴を見てみましょう。

Git GUIで確認する

Git GUIを使って、ここまでの履歴を見てみたいと思います。Git GUIは、Gitのインストール時に同梱されるツールです。Gitのインストールについては、下をご参考ください。

Gitを使ってみよう!【Git for Windowsインストール編】
Gitを始めるためのGit for Windowsのインストール方法をご紹介しています。

Git GUIはWindows10の場合、左下の検索から「Git」と入力してみましょう。下のアイコンのアプリを起動します。

Open Existing Repositoryを選択します。

Browseでgit管理しているフォルダを選択します。指定したらOpenをクリック

メニュー -> Repository -> Visualize All Branch Historyを選びます。

ここまでの履歴を確認することができます。上の方が新しい履歴です。

masterとdisplayのブランチが枝分かれしていることが確認できます。

ここで作成したフォルダをコピーしておきましょう。gitの管理ファイルはWindowsでは次のような隠しフォルダとして存在しています。

したがって、フォルダごとコピーすることでもう一つgitの作業フォルダができることになります。コピーしたフォルダはwork02としておきます。

Git GUIで確認する

では、work01に戻っていよいよ本題です。一度displayブランチへ移動します。次のコマンドです。

次に下のコマンドを実行します。

実行後、再びGit GUIでリポジトリの様子を確認しましょう。

元々枝分かれなどなかったかのように履歴が1本になっています。これがリベースの効用です。リベースはマージを行ない、さらに履歴を一本化する効果があります。ローカルリポジトリでの作業履歴をスッキリと見せることができます。

上の図を見るとmasterはまだ以前のコミットを指していますが、masterブランチを最新(displayと同じところ)に持ってくるには、fast-forwardマージを行ないます。

fast-forwardマージはポインタを先に進めるだけのマージです。

まずはmasterブランチへ移動し、

次のコマンドで行います。

Git GUIで履歴を見てみましょう。

masterブランチが先へ進みました。これでどちらも最新の状態になりました。

git mergeコマンドとの比較

一方で普通にマージした場合のコミット履歴も見てみることにしましょう。rebase前にコピーをとったもう1つのwork02フォルダで、mergeコマンドを実行します。

マージが完了しました。こちらもGit GUIで履歴を見てみましょう。

こちらの場合は、ブランチが履歴としてそのまま残ったイメージで表示されていることがわかります。

リベースを使う注意点

ここまでリベースの機能について見てきましたが、最後にリベースの注意点について述べておきます。ここは公式ドキュメントで表現される一言を引用いたします。

公開リポジトリにプッシュしたコミットをリベースしてはいけない

これがリベースの鉄則との事です。実際にどのようなことが起こるかについては長いトピックになりますので将来の記事に譲りたいと思いますが、リベースの注意点としてこの1点は確認しておきましょう。

おわりに

本日はここまでとさせていただきます。最後までご覧くださりありがとうございました。知れば知るほど奥が深いGitの世界ですが、実験する環境を整えるのはいたって簡単です。ぜひ、手を動かしながら学んでいきましょう。


合同会社イー・シー・エフでは、子ども向けプログラミングなどの教育講座を実施しています。プログラミング教室の案内や教育教材の情報、また関連するご相談・問い合わせにつきましては下記よりご確認ください。

ECFエデュケーション
キッズも大人も。沖縄からITのマナビを応援します
タイトルとURLをコピーしました