【Git・GitHub】Gitでよく使用するコマンドまとめ・CLIの一覧

Git_CLI

こんにちは、フロントエンドエンジニアのまさにょんです。

今回は、Gitでよく使用するコマンド・CLIについてまとめて解説します。

目次

Gitの管理を始める・終わらせるコマンド

Gitの管理を始める

git init

Gitの管理を終わらせる

Gitコマンドでは、ありませんが、.gitディレクトリをプロジェクトから削除すれば、Git管理状態を削除する(終わらせる)ことができます。

rm -r .git

Gitの管理状況(add・commit履歴)を確認するGitコマンド

Git管理リポジトリのファイルの変更状況(変更・add後)を確認する

git status

Git管理リポジトリのコミットの履歴を表示する

git log

branch系のGitコマンド

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

*マークが付いているのが、今いるブランチです。

git branch
  develop
  feature/TP-1443
  feature/TP-1443-1
  feature/TP-1443-2
* feature/TP-1446
  feature/TP-1447
  feature/TP-1450
  feature/TP-1450-1
  feature/TP-1450-2

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

-r、もしくは、–remotesオプションを付与するとリモートブランチの一覧を表示することができます。

git branch -r

ローカル・リモート、すべてのブランチの一覧を表示する

git branch -a

新しいローカル・ブランチを作成する

git branch <branchname>

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

git checkout <branchname> 

新しいブランチの作成と、ブランチの切り替えを同時に実施する

git checkout -b <branchname>

指定したローカルのブランチを削除する

-d、もしくは、–deleteオプションで、指定したローカルのブランチを削除することができます。

ただし、指定したブランチの内容が、追跡しているリモートブランチ(設定されていない場合はHEAD)にマージされていないと削除はできません。

git branch -d <branchname>

マージの状態に関わらず、指定したブランチを削除する

git branch -D <branchname>

リモートブランチを削除する

-rオプションを付けた場合は、リモートブランチを削除することができます。

git branch -r -d <branchname>

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

ローカルのブランチ名は、次のようにして変更することができます。

git branch -m <old_branchname> <new_branchname>

リモートに反映するのは、次のようにPushをすればOKです。

git push origin -u <new_branchname>

add・commit系のGitコマンド

一部をステージング環境にaddする

git add ファイル名・Path or ディレクトリ名・Path

# 複数addする場合は、スペース区切りでaddできる
git add readme1.md readme2.md

すべてをステージング環境にaddする

git add .

# または

git add -A

git add の一部を取り消す

git reset ファイル名・Path or ディレクトリ名・Path

git add のすべてを取り消す(ステージングエリアをリセットする)

git add のすべてを取り消す(ステージングエリアをリセットする)には、次のコマンドを使用します。

このコマンドを実行すると、ステージングエリアの内容を削除し、ワークディレクトリに変更履歴が残った状態に戻ります。

git reset .

# または、

git reset

コメント付きでcommitする

git commit -m "メッセージ"

直前のコミットを取り消す

git reset --soft HEAD^コマンドを実行すると、直前のコミットを取り消すことができます。

この場合、取り消したコミットの変更内容はステージングエリアに残ります。

–soft オプションは、ワークディレクトリの内容はそのままで、コミットだけを取り消したい場合に使用します。

git reset --soft HEAD^

直前のコミットを取り消す Ver. 最初のコミット

最初のコミットを git reset --soft HEAD^ で取り消そうとしてもエラーが発生します。

次のコマンドで、変更点がインデックスに登録された状態で元に戻ります。

git update-ref -d HEAD

add前(ワークツリー)のファイルの変更を取り消すGitコマンド

ワークツリーの指定したファイルの変更を取り消す

git checkout <filename>

ワークツリーの特定のディレクトリ以下の変更をすべて取り消す

git checkout <ディレクトリ名>

特定のファイルではなく、ワークツリーのすべての変更を取り消す

git checkout .

addしたけどcommitしていない(ステージング)ファイルの変更を取り消す

ステージングエリアの指定したファイルの変更を取り消す

git reset HEAD <ファイル名>

作業をcommitせずに一時保存する(隠す)Gitコマンド

git stashは作業をcommitせずに、一時保存する(隠す)ためのGitコマンドです。

ちなみに、stashとは、隠し場所という意味の英単語です。

変更したファイルの変更を一時保存する

git stash

# または

git stash push

特定のファイルだけをstashする

git stash push filename

# 複数のファイルをstashする場合
git stash push file1 file2 file3

メッセージをつけて、変更したファイルの変更を一時保存する

git stash -m "保存時メッセージ"

保存中のstash情報を表示する

git stash list

保存したstashの内容をブランチに適用する

git stash apply stash@{0}

最新のstashを適用後に削除する

git stash pop

指定したstashを適用後に削除する

 git stash pop stash@{1}

最新のstashを削除する

git stash drop

指定したstashを削除する

git stash drop stash@{2}

すべてのstashを削除する

git stash clear

ファイルの変更内容や変更したファイルを確認するコマンド

ファイル内容の変更をすべて確認する

git diff

特定のファイル内容の変更を確認する

git diff ファイル名

変更したファイルの一覧を確認する

git diff --name-only

ステージした(addしている)ファイルの一覧を確認する

git diff --cached --name-only

指定したコミットで変更されたファイル一覧を確認する

git diff --name-only <commit_id>

2つのコミット間で変更されたファイル名の一覧一覧を確認する

git diff <コミットID1> <コミットID2> --name-only

チーム開発関連のGitコマンド

プルリクエストを送信する

# git push リモート接続名 リモートに作成するブランチ名(プルリクエス・ブランチ名)
git push origin feature/test

ブランチをMergeする

基本は、developにて、今まで作業していた作業ブランチを指定してmergeします。

git merge マージしたい作業ブランチ

その他のGitコマンド・Git-CLI

Gitコンフィグの確認

git config -l

Gitコンフィグに、user.nameとuser.emailを登録する

git config --global user.name 'robotama'
git config --global user.email 'robotama1234@gmail.com'

Gitリポジトリ内のファイルでテキストを検索する

git grepは、Gitリポジトリ内のファイルでテキストを検索するためのコマンドです。

-iオプションを使用すると、検索時に大文字小文字を区別しなくなります。

git grep -i robotama

Git・GitHub書籍

プログラミング学習・エンジニア転職関連の情報

自宅で現役エンジニアから学べる『TechAcademy』 (エンジニア転職保証)

『GEEK JOBキャンプ』スピード転職コース(無料)

【IT道場】入校時0円! 就職目的プログラミングスクール

エンジニア転職なら100%「自社開発」求人に強い【クラウドリンク】

『techgym』 (Python特化・無料)

Twitterやってます!Follow Me!

神聖グンマー帝国の逆襲🔥

神聖グンマー帝国の科学は、世界一ぃぃぃぃぃぃ!!!!!

最近の投稿