もくじ
Gitの基本的なコマンドを忘れないように整理しました。自分用のリファレンス記事です。
Gitの初期設定
ユーザー名を登録する
git config --global user.name "userName"
メールアドレスを登録する
git config --global user.email emailAdress
Gitで使用するエディタを登録する
以下はAtomエディタを登録してます。
git config --global core.editor "atom --wait"
以下はVS Codeエディタを登録してます。
git config --global core.editor "code --wait"
リポジトリの作成
ローカルリポジトリを新規作成する
git init
変更内容をステージに追加
ファイル名を指定してステージに追加する
git add fileName
ディレクトリを指定してステージに追加する
git add directoryName
ワークツリーの変更を全てステージに追加する
git add .
ステージに追加した内容をリポジトリに記録
変更内容をリポジトリに記録する
git commit
メッセージ付きで変更内容をリポジトリに記録する
git commit -m "message"
変更内容を確認してからリポジトリに記録する
エディタが立ち上がり、変更内容を確認することができる。
git commit -v
現在の変更状況を確認
現在のインデックスの変更状況を確認する
git status
変更差分の確認
git add 前の変更差分を確認する
ワークツリーで行った変更差分を確認することができる。
git diff
git add 前の指定ファイルの変更差分を確認する
git diff fileName
git add 後の変更差分を確認する
ステージと最新コミットの間の変更差分を確認することができる。
git diff --staged
変更(コミット)履歴の確認
全ての変更履歴を確認する
git log
変更履歴を簡潔に1行で表示する
git log --oneline
変更履歴をブランチツリー有りで表示する
git log --all --graph
指定したファイルの変更履歴を確認する
git log -p fileName
表示する履歴数を指定して変更履歴を確認する
x
は任意の数字
git log -n x
ファイル・ディレクトリ変更の取り消し
ワークツリーの指定ファイルの変更を取り消す
git checkout -- fileName
ワークツリーの指定ディレクトリの変更を取り消す
git checkout -- directoryName
ワークツリーの全変更を取り消す
git checkout -- .
ステージに追加した指定ファイルの変更を取り消す
git reset HEAD fileName
ステージに追加した指定ディレクトリの変更を取り消す
git reset HEAD directoryName
ステージに追加した全変更を取り消す
git reset HEAD .
直前のコミットを修正する
リモートリポジトリにプッシュしたコミットに関しては、履歴の状態が変わるため使用禁止。
git commit --amend
コミットIDを指定してコミットを修正する
git rebase -i commitID
複数のコミットをやり直す
x
は任意の数字
git rebase -i HEAD~x
修正したいコミットの
pick
をedit
に変更し、エディタを終了するedit
のとことでコミットの適用が止まるので、git commit --amend
で修正するgit rebase --continue
で次のコミットに進む
※pickの場合、既存コミットの内容がそのまま反映される
コミットを削除する
x
は任意の数字
git rebase -i HEAD~x
削除したいコミットの
pick
をdrop
に変更し、エディタを終了する
コミットをソフトオプションで取り消す
コミットだけが取り消しされ、ステージの状態に戻る。
git reset commitID --soft
コミットをミクスドオプションで取り消す
コミットとステージが取り消しされる。
git reset commitID --mixed
コミットをハードオプションで取り消す
コミットとステージ、ファイルの変更などが取り消しされる。
git reset commitID --hard
コミットを並び替える
x
は任意の数字
git rebase -i HEAD~x
並び替えたいコミットを行事入れ替え、エディタを終了する
コミットをまとめる
x
は任意の数字
git rebase -i HEAD~x
まとめたい直前のコミットの
pick
をsquash
に変更し、エディタを終了する再度エディタが立ち上がるので、エディタを終了する
コミットを分割する
x
は任意の数字
git rebase -i HEAD~x
分割したいコミットの
pick
をedit
に変更し、エディタを終了する①で
edit
に変更したコミットをgit reset HEAD^
で取り消す
※ステージにも反映されてない状態通常通り
git add
とgit commit
を行うgit rebase --continue
で次のコミットに進む
※pickの場合、既存コミットの内容がそのまま反映される
ファイルの削除を記録
指定したファイルの削除を記録する
リポジトリ、ワークツリーから削除される。
git rm fileName
指定したディレクトリの削除を記録する
git rm -r directoryName
Gitの記録からのみファイルを削除する
リポジトリからは削除されるが、ワークツリーからは削除されない。
git rm --cached fileName
ファイルの移動を記録
ファイルの移動を記録する
git mv oldFileName newFileName
やっていることは以下の3つのコマンドと変わらない。
mv oldFileName newFileName
git rm oldFileName
git add
ブランチ関連のコマンド
ブランチを新規追加する
git branch branchName
ブランチの一覧を表示する
git branch
リモートリポジトリを含む全ブランチの一覧を表示する
git branch -a
ブランチを切り替える
git checkout branchName
ブランチを新規作成して切り替える
git checkout -b branchName
特定のコミットからブランチを作成する
git checkout commitID -b branchName
変更履歴を作業中のブランチにマージする
git merge remoteName/branchName
ブランチ名を変更する
git branch -m newBranchName
ブランチ名を削除する
masterにマージされてない変更がある場合は削除できない。
git branch -d branchName
ブランチ名を強制削除する
masterにマージしてない変更がある場合でも削除できる
git branch -D branchName
ブランチの基点となるコミットを別のコミットに移動して履歴を整える
git rebase branchName
一時避難関連のコマンド
作業を一時避難する
git stash
一時避難した作業を確認する
git stash list
一時避難した最新の作業を復元する
git stash apply
一時避難した最新の作業をステージ込みで復元する
git stash apply --index
一時避難した特定の作業を復元する
git stash apply stashName
一時避難した最新の作業を削除
git stash drop
一時避難した特定の作業を削除
git stash drop stashName
一時避難した作業を全て削除
git stash clear
タグ関連のコマンド
注釈付きタグを作成する
タグ名、メッセージ、著名を付与することができる。
git tag -a tagName -m "message"
軽量版タグを作成する
タグ名のみ付与することができる。
git tag tagName
過去のコミットにタグを作成する
git tag tagName commitID
タグの一覧を表示する
git tag
パターンを指定してタグを表示する
git tag -l pattern
タグの詳細を確認する
git show tagName
タグを削除する
git tag -d tagName
リモート(GitHub)関連のコマンド
リモート上にあるプロジェクトをローカルにコピーする
git clone url
リモートリポジトリを新規登録する
remoteName
url
を指定してない場合、アップロード時にリモートリポジトリのURL指定が毎回必要になる。
git remote add remoteName url
リモートを表示する
git remote
対応するリモートのURL表示する
git remote -v
リモートリポジトリへ送信する
-u
オプションを使用することで、次回以降のpushがgit push
のみで行える。
git push -u remoteName branchName
タグをリモートリポジトリに個別送信する
git push remoteName tagName
タグをリモートリポジトリに一斉送信する
git push remoteName --tags
リモートからフェッチで情報を取得する
取得したデータはワークツリーではなく、ローカルリポジトリに追加される。
ワークツリーに反映したい場合はmerge
が必要
git fetch remoteName
リモートからプルで情報を取得してマージする
git pull remoteName branchName
リモートからプルで情報を取得してリベースする
GitHubの内容を取得したいだけの時は、マージコミットが残らないリベースを使用する。
git pull --rebase remoteName branchName
リモートの詳細情報を表示する
git remote show remoteName
リモート名を変更する
git remote newRemoteName
リモートリポジトリを削除する
git remote rm remoteName
Gitコマンド入力の効率化
コマンドにエイリアスを付ける
以下はcommit
をci
で実行できるようにしたもです。
--global
はPC全体の設定を変更する。
--global
を付けない場合、特定のプロジェクトのみで使用できる。
git config --global alias.ci commit
設定後、git commit
を以下のコマンドで実行することが可能となる。
git ci
ステージとコミットを同時に行う
git commit -m message
その他
Gitのバージョン確認
git version
Gitの設定確認
git config --list
書籍でGitを学ぶ
udemyでGitGitを学ぶ

もみじ
Gitの仕組みを理解しながら学習したいという方におすすめの講座です。
私もこの講座でGitの操作方法について学びましたが、 コマンドがどのような仕組みで実行されているのか図解で説明がありとても理解しやすかったです。
今までGitを何となく使用しているだけで、Gitが何をしているのか理解できていない部分がありましたが、それらを理解することができました。
実際にコマンドラインで手を動かしながら学習できるため、初心者でもスムーズに学ぶことができます。
もみじ
これからGitを学びたい方、プロジェクトで使えるようになりたい方には、ぜひ手に取ってほしい一冊です。
私もこの本でGitの操作方法について学びましたが、GitやGitHubの基本的な操作から、実際にコードを管理する方法まで、初心者にも分かりやすく解説されてました。
特に良かったのは、手を動かしながら覚えていける点とコマンドラインだけではなく、SourceTree(クライアントソフト)を使用したGitの操作方法の説明があったところです。
もしGitに苦手意識があるなら、ぜひこの本を読んでみてください。
初心者でもスムーズに学べる内容が詰まっています。