よく使うgitコマンド 一覧

# この記事でわかること
よく使うgitコマンドの使い方を、以下の５つのカテゴリに分けて一覧にしました。
1. 基本操作
1. ブランチの操作
1. コミットを変更する操作
1. リモートリポジトリへ送信する操作
1. リモートリポジトリから取得する操作

（※ 各コマンドの概要を簡潔にまとめただけなので、詳細を知りたい場合は別途調べていただく必要があります。）


## 1. 基本操作

### git init （リポジトリを初期化）
~~~.sh
 # カレントディレクトリに .gitディレクトリを作成
$ git init
~~~

### git status （リポジトリの状態を確認）
~~~.sh
$ git status
~~~

### git add （ファイルをステージング）
~~~.sh
# 特定のファイルをステージング
$ git add ファイル名

# 修正したファイルと削除したファイルを全てステージング
$ git add -u

# 修正したファイル、削除したファイル、新規に追加したファイルなど変更のあった全てのファイルをステージング
 $ git add -A
# または
 $ git add --all
~~~

### git restore （変更を取り消し / ファイルをアンステージ）
~~~.sh
# 未コミットの変更をすべて取り消す
$ git reset      # すべてのディレクトリ・ファイル
$ git restore ファイル名      # ファイル単位

# ステージング中のファイルをアンステージする
$ git restore --staged ファイル名
~~~

### git rm （ファイルやディレクトリを削除）
~~~
 ファイルを削除したことをステージング
$ git rm ファイル名

 ディレクトリを削除したことをステージング
$ git rm -r ファイル名

 ファイルのトラッキングをやめる（Git管理対象からは外れるが、ファイル自体はワークツリーに残る）
$ git rm --cached ファイル名
~~~

### git commit （ステージングされているファイルをコミット）
~~~
 詳細なコミットメッセージを記述する
$ git commit

 １行のコミットメッセージを記述する
$ git commit -m "コミットメッセージ"

 ステージングとコミットを同時に行い、コミットメッセージを記述する
$ git commit -am "コミットメッセージ"
~~~

### git log （コミットログを確認）
~~~
　コミットメッセージを確認する
$ git log

 コミットメッセージの１行目のみを表示・確認する
$ git log --pretty=short

 指定したファイルのみのログを表示・確認する
$ git log ファイル名

 ファイルの差分も表示する
$ git log -p

 指定したファイルのみのログとファイルの差分を表示・確認する
$ git log -p ファイル名

 ブランチを視覚的に確認しながらコミットメッセージを確認する
$ git log --graph
~~~

### git reflog （作業ログを表示）
~~~
 現在のブランチで行われた作業のログを表示
$ git reflog
~~~

### git diff （最新コミットからの変更差分を確認）
~~~
 まだステージングしていないファイルの変更差分を表示する
$ git diff

 ステージング済みファイルの変更差分を表示する
$ git diff HEAD
~~~

---

## 2. ブランチの操作

### git branch （ブランチの確認や新規作成、削除）
~~~
 ブランチの一覧を表示し、現在のブランチを確認
$ git branch

 ブランチの一覧を表示し、現在のブランチを確認 （リモートリポジトリも含めて）
$ git branch -a

 新規ブランチを作成
$ git branch 新規ブランチ名

 ローカルのブランチを削除
$ git branch -d ブランチ名

 リモートのブランチを削除
$ git push origin --delete ブランチ名
~~~

### git checkout （ブランチの切り替え）
~~~
 ブランチの切り替え
$ git checkout チェックアウト先のブランチ名

　直前にいたブランチに切り替え
$ git checkout -

 新規ブランチを作成し、そのブランチに切り替え
$ git checkout -b 新規ブランチ名
~~~

### git merge （ブランチのマージ）
~~~
※ マージ先のブランチ（mainブランチ等）で実行すること

 ブランチをマージ
$ git merge マージ元ブランチ名

　マージコミットを作成してマージ
$ git merge --no-ff　マージ元ブランチ名
~~~

---

## 3. コミットを変更する操作

### git reset （あるコミットの時点まで戻る/進む）
~~~
 ソースコードの変更やステージングを全て破棄しつつ戻る/進む
$ git reset --hard 戻る先/進む先のコミットのハッシュ
~~~

### git commit --amend （コミットメッセージを修正）
~~~
 直前のコミットメッセージを修正してコミットし直す（下記コマンド実行後、エディタが立ち上がる）
$ git commit --ament
~~~

### git rebase -i （過去のコミットを操作）
~~~
 HEAD（最新のコミット）を含めた過去N個のコミットを操作
$ git rebase -i HEAD~N

----------
【使用例： 直前のコミットをその前のコミットの中に統合したい場合】
$ git rebase -i HEAD~2
→ エディタが立ち上がるので、上から２行目先頭の「pick」という単語を「fixup」に変える
→ 変更を保存してエディタを閉じればOK
~~~

---

## 4. リモートリポジトリへの送信
### git remote add （リモートリポジトリにローカルリポジトリを登録）
~~~
originという識別子（名前）で登録
$ git remote add origin git@github.com:ユーザー名/リモートリポジトリ名.git


※ 以下も参考に

登録したリモートリポジトリの識別子（名前）を表示
$ git remote
登録したリモートリポジトリの詳細を表示
$ git remote -v
~~~

### git push （リモートリポジトリに送信）
~~~
　現在のブランチをorigin/masterブランチへ送信
$ git push origin master
　現在のブランチをorigin/masterブランチへ送信　+ upstreamをorigin/masterに設定
$ git push -u origin master
~~~

---

## 5. リモートリポジトリから取得
### git clone （リモートリポジトリを取得）
~~~
現在のディレクトリにリモートリポジトリをクローン
$ git clone git@github.com:ユーザー名/リモートリポジトリ名.git
~~~

### git checkout （リモートのブランチをチェックアウト）
~~~
　originのリモートブランチをもとにローカルリポジトリにブランチを作成して、そのブランチにチェックアウト
$ git checkout -b ブランチ名 origin/リモートのブランチ名
~~~

### git pull （最新のリモートブランチを取得）
~~~
$ git pull origin ブランチ名
~~~

---
↓ 参考にした書籍はこちら
[GitHub 実践入門](https://amzn.asia/d/gbw10FG)

---