Gitでよく使うコマンドをまとめました。
- 本記事の「ローカル」は自分のPC、「リモート」はGitHubを指します。
- コマンドラインの中で、 <> で囲っている箇所は、任意の名前に置き換えてください。
本記事の内容
- よく使う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 branch
はgit 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コマンドを使うことで、だんだんと覚えてきます。
当記事が参考になれば幸いです。