インフラ

よく使うGitコマンドまとめ

よく使うGitコマンドまとめ
エンジニア
Gitコマンドが中々覚えられません。よく使うコマンドの情報が欲しいです。

Gitでよく使うコマンドをまとめました。

  • 本記事の「ローカル」は自分のPC、「リモート」はGitHubを指します。
  • コマンドラインの中で、 <> で囲っている箇所は、任意の名前に置き換えてください。

 

本記事の内容

  • よく使うGitコマンド集

ローカルでGitの初期設定をする

ローカルでGit初期設定

ローカルではじめてGitを使う際の初期設定です。

 

config

GitHubのユーザー名とメールアドレスを登録する。


# GitHubのユーザー名を登録
$ git config --global user.name "<github-username>"

# GitHubのメールアドレスを登録
$ git config --global user.email "<github-email>"

 

よく使うコマンドをエイリアスに登録する。


$ git config --global alias.<alias-name> <git-command-name>

例:以下を実行すると、git config branchgit config brで実行できるようになる。


$ git config --global alias.br branch

 

今いるディレクトリで有効なすべての設定を確認する。(-lは--listの省略形)


$ git config -l

 

システム全体の設定を確認する。


$ git config -l --system

 

今使用しているユーザーの設定を確認する。


$ git config -l --global

 

今いるのローカルリポジトリで有効な設定を確認する。(対象のローカルリポジトリに移動してから実行する)


$ git config -l --local

 

ローカルでファイルを操作する

ローカルでファイルを操作

ローカルにおけるファイル操作です。

 

git init

ローカルのカレントディレクトリにリポジトリを作成する。( ./.git/ 下に関連ファイルが作成される)


$ mkdir <local-subdirectory-name>
$ cd <local-subdirectory-name>
$ git init

 

git add

ファイルの変更をインデックスに登録する。


$ git add <file-name>

 

カレントディレクトリにある、すべてのファイルの変更をインデックスに登録する。


$ git add .

 

git commit

インデックスに登録されたファイルの変更を、ローカルリポジトリにコミットする。(エディタが起動する)


$ git commit

 

コミットメッセージを指定してコミットする。


$ git commit -m "<commit-message>"

 

直前のコミットメッセージを修正 or コミット内容を後から追加する。(エディタが起動する)


$ git commit --amend

 

コミットメッセージを指定してgit commit --amendする。


$ git commit --amend -m "<commit-message>"

 

エディタを起動せずgit commit --amendする。


$ git commit --amend --no-edit

 

git status

ローカルにおける変更の有無を確認する。


$ git status

 

git log

コミットログ(変更の履歴)を表示する。


$ git log

 

デフォルトでは、最新のコミット履歴が上から以下内容が表示されます。

  • コミットID(ハッシュ値)
  • Author(GitHubアカウント名、GitHubメールアドレス)
  • 日付
  • コミットメッセージ

 

コミットログを1行で短く表示する。


$ git log --oneline

 

直近のコミットログを指定した件数のみ表示する。


$ git log -n <commit-count>

例:直近5件のコミットだけ確認する。


$ git log -n 5

 

ファイルの変更差分を表示する。


$ git log -p <file-name>

 

git push

ローカルの変更をリモートリポジトリに取り込む。


$ git push <remote-name> <local-branch-name>

例:ローカルのmasterブランチの変更をoriginリモートに取り込む。


$ git push origin master

 

git mv

ワークツリーとステージのファイル名を変更する。(ローカルリポジトリのファイル名は変更されない)


$ git mv <file-name> <new-file-name>

# ローカルリポジトリのファイル名も変更する場合はコミットする
$ git commit -m "<commit-message>"

 

git rm

ワークツリーとステージからファイルを削除する。(ローカルリポジトリからは削除されない)


$ git rm <file-name>

# ローカルリポジトリからも削除する場合はコミットする
$ git commit -m "<commit-message>"

 

ワークツリーとステージからディレクトリごと削除する。(ローカルリポジトリからは削除されない)


$ git rm -r <directory-name>

# ローカルリポジトリからも削除する場合はコミットする
$ git commit -m "<commit-message>"

 

ローカルリポジトリからファイルを削除する。(ワークツリーとステージからは削除されない)


$ git rm --cached <file-name>

 

git reset & git checkout

git rmで削除したファイル(ディレクトリ)を復元する。(コミットしていた場合は復元できない)


# ファイルの場合
$ git reset HEAD <file-name>
$ git chekcout <file-name>

# ディレクトリの場合
$ git reset HEAD <directory-name>
$ git chekcout <directory-name>

 

git checkout

ワークツリーで変更を行った後、ステージに追加する前に、ワークツリーの変更を取り消す。


# ファイルの場合
$ git checkout <file-name> 

# ディレクトリの場合
$ git checkout <directory-name>

 

ブランチ名とファイル名(ディレクトリ名)が同じ場合は、"--" をつけるとワークツリーの変更を取り消すことができる。


# ファイルの場合
$ git checkout -- <file-name> 

# ディレクトリの場合
$ git checkout -- <directory-name>

 

git clone

リモートリポジトリをローカルにコピーする。(<local-subdirectory-name>は省略可能)


$ git clone <remote-url> <local-subdirectory-name>

 

ローカルでブランチを操作する

ローカルでブランチ操作

ローカルにおけるブランチの操作です。

 

git branch

ローカルのブランチ一覧を表示する。


$ git branch

 

ローカルに新規ブランチを作成する。


$ git branch <new-branch-name>

 

リモートのブランチ一覧を表示する。


$ git branch -a

 

ローカルとリモートのブランチ一覧を表示する。


$ git branch -r

 

ローカルのブランチ名を変更する。


$ git branch -m <branch-name> <new-branch-name>

 

ローカルのブランチを削除する。


$ git branch -d <branch-name>

 

git checkout

ローカルのブランチを切り替える。


$ git checkout <branch-name>

 

ローカルに新規ブランチを作成し、同時にブランチを切り替える。


$ git checkout -b <new-branch-name>

 

git diff

ブランチを比較する。


$ git diff <branch-name-a> <branch-name-b>

 

git fetch

リモートリポジトリの変更を、ローカルの <remote-name>/<branch-name> に取り込む。


$ git fetch <remote-name> <branch-name>

# マージも行う場合は続けて以下を実行する

# 取り込みを行いたいブランチに切り替える
$ git checkout <branch-name>

# 「変更の取り込み元ブランチ名」を指定して変更を取り込む
$ git merge <remote-name>/<branch-name>

 

git merge

別のブランチにおける変更をローカルのブランチに取り込む。


# 取り込みを行いたいブランチに切り替える
$ git checkout <branch-name>

# 「変更の取り込み元ブランチ名」を指定して変更を取り込む
$ git merge <branch-name>

 

git pull

リモートリポジトリの変更をローカルリポジトリに取り込む。

pullはfetchとmergeを同時に実行する。(引数は省略可能)


$ git pull <remote-name> <branch-name>

 

リモートリポジトリを管理する

リモートリポジトリを管理

ローカルにおけるリモートリポジトリ(=リモート)の管理です。

 

git remote

ローカルに設定しているリモートリポジトリを表示する。


# リモートリポジトリ名だけ表示
$ git remote

# リモートリポジトリのアドレスも表示
$ git remote -v

 

ローカルにリモートリポジトリのアドレスを登録する。(<remote-name> にはoriginなどを指定する)


# HTTPの場合
$ git remote add <remote-name> <remote-url>

# SSH接続の場合
$ git remote add <remote-name> git@github.com:<github-username>/<repository-name>.git

 

ローカルに登録済みのリモートリポジトリのアドレスを変更する。


$ git remote set-url <remote-name> <remote-address>

 

ローカルに登録済みのリモートリポジトリに接続し、詳細情報を表示する。


$ git remote show <remote-name>

 

ローカルに登録済みのリモートリポジトリの名前を変更する。


$ git remote rename <remote-name> <new-remote-name>

 

ローカルに登録済みのリモートリポジトリの情報を削除する。


$ git remote rm <remote-name>

 

 

Gitコマンドは繰り返し使うと覚えられる:まとめ

Gitは仕組みを理解して、各Gitコマンドの処理内容が分かるようになるまで少し時間がかかります。

しかし、繰り返しGitコマンドを使うことで、だんだんと覚えてきます。

 

当記事が参考になれば幸いです。

-インフラ

© 2022 ふにノート