git 入門 〜Tips編〜

git 入門の4章、Tips編に入りたいと思います。

基本的な使い方意外で困ったときにざっと見る用のTips集です。 少し上級な内容等もあるかもですが、おそらくコピペで実行出来るかと思います。

前章は以下になります。

neko3cs.hatenablog.com

Tips

ぱっと思い浮かんだシチュエーションが以下なので今回は以下のみ紹介します。 他にもあるかと思いますが、最初のうちは使わないコマンドだと思います。(多分...)

  • 現在の変更箇所を確認したい!
  • リモートブランチに変更があるか見たい!
  • リモートブランチの変更を取得したい!
  • ブランチの一覧がみたい!
  • ブランチを削除したい!
  • ファイルの変更を取り消したい!
  • 間違えてステージングしてしまった!
  • 直前のコミットをやっぱやめたい!
  • 削除されたリモートブランチの情報を消したい!
  • 変更履歴を引き継いだままファイル名変更やフォルダ移動したい!
  • 変更内容を一時保存したい!

現在の変更箇所を確認したい!

今どこを変更したのか確認したくなる時があるかもしれません。

そんな時は以下のコマンドで確認出来ます。

$ git diff

リモートブランチに変更があるか見たい!

チーム開発したり、普段と違うPCを使ったりする場合、リモートリポジトリには変更が生じているかもしれません。

その変更状態があるかどうかは以下のコマンドで確認出来ます。

$ git fetch

リモートブランチの変更を取得したい!

チーム開発したり、別のPCで変更した内容があることをgit fetch でわかった際、 その変更をローカルリポジトリのブランチにも反映させたいでしょう。

その際は以下のコマンドで反映できます。

$ git pull

事前に git switch で反映させたいブランチに移動しておく必要があります。

ブランチの一覧がみたい!

いろいろブランチを作りすぎて今どんなブランチがあるか分からなくなるかもしれません。

そんな時は以下のコマンドでブランチの一覧がみれます。

$ git branch

ちなみに、 -a オプションをつけるとリモートリポジトリにあるブランチも確認出来ます。 最新のリモートリポジトリのブランチを確認したい場合は事前に git fetch をしておきましょう。

ブランチを削除したい!

ブランチをマージした後、もう不要になるブランチもあるかもです。

そんな時は以下のコマンドで削除出来ます。

$ git branch -D <削除したいブランチ名>

ちなみに、リモートリポジトリのブランチを削除するには GitHub のサイト上からおこないます。 リポジトリのページにブランチの確認ページを見るボタンがあり、そのページで削除可能ですが、詳細はググってください。

ファイルの変更を取り消したい!

いろいろ変更を加えたが、 よく分からなくなって変更する前の状態に戻したくなることがあるかもしれません。

そんな時は以下のコマンドで変更する前のコミットの状態に戻すことが出来ます。

$ git restore <元に戻したいファイルのパス>

ファイルパスは相対パスを用います。 ファイルパスの代わりに .を指定すると全部取り消せます。

間違えてステージングしてしまった!

脳死git add * してしまったなど、コミット対象にしたくないファイルまでステージングしてしまうこともあるかもしれません。

そんな時は以下のコマンドで git addする前の状態に戻すことが出来ます。

git restore --staged <ステージングしたくないファイルのパス>

直前のコミットをやっぱやめたい!

間違えてステージングしてしまったけどもうコミットしてしまったときや、 そもそも後からこの変更要らなかった思うこともあるかもしれません。

そんな時は以下のコマンドでgit addした直後まで戻すことが出来ます。

git reset --soft HEAD^

削除されたリモートブランチの情報を消したい!

git branch -aでフェッチ済みのリモートリポジトリのブランチの情報も表示できますが、 これはリモートリポジトリで削除済みのブランチが自動で表示されなくなる訳ではありません。

以下のコマンドで消します。

git remote prune origin

変更履歴を引き継いだままファイル名変更やフォルダ移動したい!

git では普通にD&Dでファイルを移動させたりOSの機能でファイル名を変えたりフォルダ移動してしまうと一度削除され、 新しく作成されたファイルとして認識してしまい、過去の履歴が消えてしまいます。

ファイル名の変更やフォルダ移動も履歴として残す場合は以下のコマンドで変更します。

git mv <今のファイルパス> <変更後のファイルパス>

変更内容を一時保存したい!

git switch は変更がない状態でないと実行出来ません。 例えば、チーム作業でよくある緊急の変更対応が必要になったなど、 ブランチをすぐに切り替えたいけど今の状態はコミットしたくないみたいなことがあるかもしれません。

そんな時は以下のコマンドで変更を一時保存出来ます。

$ git stash save

一時保存は幾つでも出来ます。

今幾つ保存したかは以下のコマンドで確認出来ます。

$ git stash list

無事一時保存できると以下のような結果になります。

f:id:neko3cs:20191020033101p:plain

一時保存した内容を取り出したい場合は以下のコマンドで保存内容を取り出せます。

$ git stash pop stash@{<スタッシュ番号>}

スタッシュ番号は git stash list した際に表示されている左側の番号です。

一時保存を pop で取り出すとその一時保存は削除されます。

最後に

本章までが git 入門のすべてになります。

最初に比べて git に対する知識が深まったでしょうか? そうであれば、この記事を書いた甲斐があります。

紹介編でも申した通り、 git は今や変更履歴管理システムのデファクトスタンダードになっています。

本エントリーを読んで git を使えるエンジニア・デザイナーが増えると嬉しいです。