📊

【GitのGUIツール】Git Graphの使い方

2023/11/28に公開

Git Graphとは

VSCodeの拡張機能で、Gitリポジトリの履歴やブランチを視覚化し、操作を容易にするためのGUIツールです。
https://marketplace.visualstudio.com/items?itemName=mhutchie.git-graph

このように可視化できます。

現在のブランチ

ブランチの左横にがついていて太字になっているのが現在自分がいるブランチです。

プル、プッシュ

差異があるとこのように表示されます。今回はなのでプルのみです。
オレンジの部分をクリックしてください。

OKを選択してください。(黒塗りの部分はブランチ名です)

プッシュする場合はになっています。

チェックアウト

ローカルブランチからローカルブランチに移動する際にはチェックアウトしたいブランチを右クリックし、Checkout Branchを選択するとチェックアウトできます。

リモートブランチからチェックアウトする時、他のブランチからリモートブランチにチェックアウトする場合に表示されることがあります。

通常通りチェックアウトしたいブランチを右クリックし、Checkout Branchを選択すると

Enter the name of the new branch you would like to create when checking out origin/<ブランチ名>と表示されます。

入力欄を見てみるとtestというチェックアウトしたいブランチ名が表示されていますが、そのままCheckout Branchを選択してください。

次にtestという名前は、すでに別のブランチで使われていますというような以下の表示が出てきますが、Checkout the existing branch & pull changesを選択してください。

問題なくチェックアウトできたと思いますので、確認してください。

マージ

今回は現在いるmainブランチにsssブランチをマージしたいと思います。
sssブランチを選択してMarge into current branchを選択してください。

Yes,mergeを選択してください。

コンフリクトした場合

コンフリクトとは、異なるブランチや異なるコミットで同じ箇所のファイルに変更が加えられ、Gitがそれを自動的に統合できない状態を指します。通常、マージやプルの際に起こります。

Yes,mergeを選択した後に以下のような表示がされます。

左の方にコンフリクトが発生しているファイルが表示されますので選択してください。

下記のようになっていると思うので修正後、コミット→プッシュしてください。

無事にマージが完了しました。

フェッチ

リモートリポジトリから最新の情報(新しいコミット、新しいブランチなど)を取得できます。

右上の赤枠の箇所を選択してください。

スタッシュ

git stash

下記のように表示されます。

stash内容を復元するには作成したstashを選択して、Pop Stashを選択

Yes, pop stashを選択してください。

以下のようにしてわかりやすいメッセージを付けることも可能です。

git stash save "メッセージ"

stash-testブランチでstash-testとメッセージをつけると、以下のようになります。

タグ付け

右クリックをしてメニューからAdd Tag...を選択します。

入力が済んだら、Add Tagを選択してください。

タグが付いていることを確認してください。

.gitファイルが見当たらないのにリポジトリと紐づいている場合

.gitファイルが見当たらない場合でも以下のコマンドで.gitファイルを削除してみてください。

rm -rf .git

Error: Unable to Checkout Branch & Pull Changes

Gitで現在のブランチとリモートリポジトリのブランチが異なっており、どのようにそれらを調整するか指定する必要があることを示しています。

私の場合は、GithubでREADME.mdを編集したにも関わらずプルを忘れてコミット&プッシュした際に発生しました。

明示的にリベースを行わないように指定してプルします。

git pull --no-rebase

リモートリポジトリから変更を取得し、ローカルの変更とマージします。競合があれば、Gitはマージコミットを作成してくれるので、指示に従ってコミット
→その後に衝突していたコミットと先ほどのコミットをプッシュ

ローカルで行った変更とリモートで行われた変更を適切に統合し、その後にコミットし直すことで解決しました。

終わりに

何かありましたらお気軽にコメント等いただけると助かります。
ここまでお読みいただきありがとうございます🎉

Discussion