【Git】Sourcetree + P4Mergeの使い方

プログラミング

はじめに

 Gitをつかったバージョン管理ではGUIである「Sourcetree」を使うと便利です。

Sourcetree | Free Git GUI for Mac and Windows
A Git GUI that offers a visual representation of your repositories. Sourcetree is a free Git client for Windows and Mac.

この記事ではGitのいろんな操作に関して、

  • Gitコマンドではどういった操作か?
  • Sourcetreeではどういった操作か?

をまとめました。

また、コンフリクトが起こった際の解決方法として、mergetoolの「P4Merge」の様子を述べます。

GitとSourcetreeの操作方法

ローカルリポジトリの作成: git init

ディレクトリを作成し、一からリポジトリとして設定します。

Gitコマンド
mkdir my-project
cd my-project/
git init
Sourcetree
  1. 新規から「ローカルリポジトリを作成」を選択します。
  2. 空のディレクトリを指定することで、ローカルリポジトリを作成できます。

リモートリポジトリをクローン: git clone

リモートにあるリポジトリをローカルに持ってきます。

Gitコマンド
 git clone {リモートリポジトリのURL}
Sourcetree
  1. 「新規」から「URLからクローン」を選択します。
  2. ソースURLにリモートリポジトリのURLを貼り付けて、「クローン」をクリックすると完了です。

ファイルをコミット: git add, git commit

編集したファイルをコミットするまでの動作です。

Gitコマンド

git addコマンドでファイルをステージングに移動します。

# 対象のファイルをadd
git add {対象のファイル}
# カレントディレクトリ配下の全てのファイルをadd
git add .

ステージングに追加したファイルをgit commitコマンドでコミットします。

git commit -m '{コミットメッセージを記載}'
Sourcetree
  1. 「ファイルステータス」から対象のファイルにチェックマークを入れることでステージング移動となります。
  2. 同画面の「コミットメッセージ」欄にコミットメッセージを記載して、コミットボタンを押下することで完了です。

リモートリポジトリに更新を反映: git push

リモートリポジトリにコミットした内容を反映させます。
基本的にpushを行う前に、後述するpullをおこなう必要があります。

Gitコマンド
git push origin {ブランチ名}
Sourcetree
  1. 画面上部にある「プッシュ」ボタンをクリックします。
  2. pushするブランチを選択して完了です。

リモートリポジトリの更新を取り込む: git pull

リモートリポジトリの更新内容を取り込みます。
なお、pullは後述する fetch + merge を合わせて行う処理に相当します。

Gitコマンド
# 引数なしで現在のブランチに対応するリモートブランチから最新の更新を取り込む
git pull
Sourcetree
  1. リモートリポジトリに更新があれば、画面上部のプルアイコンに数字が表示されます。
  2. プルアイコンをクリックしてOKボタンを押すと完了です。


リモートリポジトリの情報を取得: git fetch

リモートリポジトリの更新情報を取得します。

更新情報は origin/main といった”リモート追跡ブランチ”に更新され、作業中のブランチに更新されることはありません。

Gitコマンド
# 引数なしで現在のブランチに対応するリモートブランチから最新の更新情報を取得
git fetch
# リモート追跡ブランチは branch -a で表示可能
git branch -a
Sourcetree
  1. 画面上部にある「フェッチ」ボタンをクリックします。
  2. OKボタンを押すと完了です。
  3. origin/main といった”リモート追跡ブランチ”が先行していることが分かります。
  4. 問題がなければ、pullをおこない更新内容を反映させます。

ブランチの作成、切り替え: git checkout

ブランチを作成して、履歴の流れを分岐させます。

Gitコマンド
# ブランチの作成
git branch -b {ブランチ名}
# ブランチの切り替え
git branch {ブランチ名}
Sourcetree
  1. 画面上部にある「ブランチ」ボタンをクリックします。
  2. ブランチ名を入力してブランチを作成ボタンを押下すると完了です。
  3. ブランチの切り替えはサイドバーのブランチをダブルクリックでおこなえます。

ブランチをマージする: git merge

他のブランチで編集した内容を取り込みます。

Gitコマンド
# 取り込み元ブランチに移動
git checkout {取り込み元ブランチ}
# マージを実行
git merge {マージ対象ブランチ}
Sourcetree
  1. 取り込み元のブランチにチェックアウトして、画面上部の「マージ」ボタンをクリックします。
  2. マージしたいコミットを選択した後、OKボタンをクリックしてマージ完了です。

編集中のファイルを一時退避させる: git stash

緊急の作業をすることになった時、今の作業を一時退避させ、別の作業にとりかかることが可能です。

Gitコマンド
# stashする
git stash
# stashした内容を一覧表示する
git stash list
# stashした内容をworking directoryに戻す(ただし、stashからは削除されない)
git stash apply
# 作業内容をstashから削除する
git stash drop
Sourcetree
  1. 画面上部の「スタッシュ」ボタンをクリックします。
  2. メッセージを入れて「スタッシュ」をクリックします。
  3. stashの内容を戻すには、サイドバーの「スタッシュ」を右クリックして、「退避した変更を適用」をクリックします。

コンフリクトの解消 P4Mergeの使い方

 コンフリクトが生じた際の解消方法として、mergetoolの「P4Merge」をつかった方法を述べます。

まず、P4Mergeを下記のサイトからダウンロードします。

Helix Merge and Diff Tools (P4Merge) | Perforce
Learn how to track & compare branch and file-level changes. P4Merge & diff tool helps developers and designers visualize diff code and graphic files to easily s...

次にSourcetreeのマージツールを設定をおこないます。

マージツールの設定は「環境設定」の「Diff」からおこなえます。

以上で設定は完了です。


Sourcetreeでコンフリクトが生じた場合の対処法は、まず「ファイルステージ」のビックリマークがついているファイルを右クリックし、「外部マージツールを起動」を選択します。

すると「P4Merge」が起動します。

下図のようにP4Mergeでは左右にコンフリクトが生じた部分の差分が表示されます。

画面右下のマークをクリックすることで、左右のどちらでコンフリクトを解消するかを選ぶことができます。

選択したら、「Command⌘ + S」で保存し、「Command⌘ + Q」でマージツールを終了します。

あとは、いつも通りコミット・プッシュがおこなえます。


 以上のようにGUIであるSourcetreeを使うことでGit操作が簡単におこなえます。

タイトルとURLをコピーしました