📝

個人的に利用頻度の高い Git コマンド集

2023/07/20に公開

clone

リモートリポジトリをローカルマシンに複製するために使用されるコマンド。

git clone <リポジトリURL>

fetch

リモートリポジトリから最新の変更を取得するために使用されるコマンド。取得した変更はローカルの作業ディレクトリには反映されない。取得した変更はローカルのリモートブランチを更新する。

--prune オプションはリモートリポジトリから削除されたブランチやリファレンスをローカルで削除するためのオプション。ローカルで不要になったリモートトラッキングブランチを削除する。

git fetch --prune

checkout

指定のブランチやコミットに切り替える。
ローカルブランチが存在しないリモート追跡ブランチに切り替えたい場合は -b オプションなしで切り替えられる。 (事前に fetch をしてリモート追跡ブランチを取得しておく必要がある)

git checkout <ブランチ名>
git checkout <コミットハッシュ>

新規のローカルブランチを作成する場合は -b オプションをつける。

git checkout -b <新規ブランチ名>

add

作業ディレクトリの変更内容をステージングエリアに追加するために使用されるコマンド。
. を指定すると変更対象となっているすべてのファイルをステージングエリアに追加する。
特定のファイルだけをステージングエリアに追加する場合はファイルパスを入力する。

git add .
git add <ファイルパス>

commit

ステージングエリアの変更内容をローカルリポジトリにコミットするために使用されるコマンド。
-m オプションをつけることで、コミットメッセージを含めてワンライナーでコマンドを実行できる。

git commit -m "commit message."

-m オプションをつけない場合は vi エディタでコミットメッセージを作成できる。
自分はこちらをよく使う。

git commit

push

ローカルリポジトリのコミットをリモートリポジトリにアップロードするために使用されるコマンド。
最初のプッシュ時にリモートブランチとのトラッキングを設定する場合は -u オプションを指定する。

git push -u origin main

-u オプションを指定した場合は、次回以降はリモートブランチ名を指定せずに push コマンドを実行できる。

git push # 2回目以降はこれだけでOK

merge

指定したブランチの変更を現在のブランチにマージするために使用するコマンド。
指定ブランチで保存しているコミットすべてが現在のブランチにマージされる。

git merge <ブランチ名>

cherry-pick

特定のコミット (別ブランチ) の変更を現在のブランチに適用するために使用されるコマンド。
別のブランチの一部のコミットだけを現在のブランチに反映させたいときに利用する。 (merge はすべてのコミットを反映してしまう)

git cherry-pick <コミットハッシュ>

diff

現在の作業ディレクトリやステージングエリア、またはコミット間の差分を表示するために使用されるコマンド。
CLI 上はで修正差分は確認しづらいのであまり利用していない。修正差分の確認では VSCode や IntelliJ IDEA や tig などを利用している。
代わりにコミット間の修正ファイルを一覧で取得したいときなどに利用している。

git diff --name-only <開始点のコミットハッシュ> <終了点のコミットハッシュ>

※ 開始点のコミットは差分には含まれないようなので注意

Discussion