プログラミング

【PR】を含みます。

【メモ】Gitコマンド

Gitコマンド

もくじ

Gitの基本的なコマンドを忘れないように整理しました。自分用のリファレンス記事です。

Gitの初期設定

ユーザー名を登録する

Command
Copy
  1. git config --global user.name "userName"

メールアドレスを登録する

Command
Copy
  1. git config --global user.email emailAdress

Gitで使用するエディタを登録する

以下はAtomエディタを登録してます。

Command
Copy
  1. git config --global core.editor "atom --wait"

以下はVS Codeエディタを登録してます。

Command
Copy
  1. git config --global core.editor "code --wait"

リポジトリの作成

ローカルリポジトリを新規作成する

Command
Copy
  1. git init

変更内容をステージに追加

ファイル名を指定してステージに追加する

Command
Copy
  1. git add fileName

ディレクトリを指定してステージに追加する

Command
Copy
  1. git add directoryName

ワークツリーの変更を全てステージに追加する

Command
Copy
  1. git add .

ステージに追加した内容をリポジトリに記録

変更内容をリポジトリに記録する

Command
Copy
  1. git commit

メッセージ付きで変更内容をリポジトリに記録する

Command
Copy
  1. git commit -m "message"

変更内容を確認してからリポジトリに記録する

エディタが立ち上がり、変更内容を確認することができる。

Command
Copy
  1. git commit -v

現在の変更状況を確認

現在のインデックスの変更状況を確認する

Command
Copy
  1. git status

変更差分の確認

git add 前の変更差分を確認する

ワークツリーで行った変更差分を確認することができる。

Command
Copy
  1. git diff

git add 前の指定ファイルの変更差分を確認する

Command
Copy
  1. git diff fileName

git add 後の変更差分を確認する

ステージと最新コミットの間の変更差分を確認することができる。

Command
Copy
  1. git diff --staged

変更(コミット)履歴の確認

全ての変更履歴を確認する

Command
Copy
  1. git log

変更履歴を簡潔に1行で表示する

Command
Copy
  1. git log --oneline

変更履歴をブランチツリー有りで表示する

Command
Copy
  1. git log --all --graph

指定したファイルの変更履歴を確認する

Command
Copy
  1. git log -p fileName

表示する履歴数を指定して変更履歴を確認する

xは任意の数字

Command
Copy
  1. git log -n x

ファイル・ディレクトリ変更の取り消し

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

Command
Copy
  1. git checkout -- fileName

ワークツリーの指定ディレクトリの変更を取り消す

Command
Copy
  1. git checkout -- directoryName

ワークツリーの全変更を取り消す

Command
Copy
  1. git checkout -- .

ステージに追加した指定ファイルの変更を取り消す

Command
Copy
  1. git reset HEAD fileName

ステージに追加した指定ディレクトリの変更を取り消す

Command
Copy
  1. git reset HEAD directoryName

ステージに追加した全変更を取り消す

Command
Copy
  1. git reset HEAD .

直前のコミットを修正する

リモートリポジトリにプッシュしたコミットに関しては、履歴の状態が変わるため使用禁止。

Command
Copy
  1. git commit --amend

コミットIDを指定してコミットを修正する

Command
Copy
  1. git rebase -i commitID

複数のコミットをやり直す

xは任意の数字

Command
Copy
  1. git rebase -i HEAD~x
  1. 修正したいコミットのpickeditに変更し、エディタを終了する

  2. editのとことでコミットの適用が止まるので、git commit --amendで修正する

  3. git rebase --continueで次のコミットに進む
    ※pickの場合、既存コミットの内容がそのまま反映される

コミットを削除する

xは任意の数字

Command
Copy
  1. git rebase -i HEAD~x
  1. 削除したいコミットのpickdropに変更し、エディタを終了する

コミットをソフトオプションで取り消す

コミットだけが取り消しされ、ステージの状態に戻る。

Command
Copy
  1. git reset commitID --soft

コミットをミクスドオプションで取り消す

コミットとステージが取り消しされる。

Command
Copy
  1. git reset commitID --mixed

コミットをハードオプションで取り消す

コミットとステージ、ファイルの変更などが取り消しされる。

Command
Copy
  1. git reset commitID --hard

コミットを並び替える

xは任意の数字

Command
Copy
  1. git rebase -i HEAD~x
  1. 並び替えたいコミットを行事入れ替え、エディタを終了する

コミットをまとめる

xは任意の数字

Command
Copy
  1. git rebase -i HEAD~x
  1. まとめたい直前のコミットのpicksquashに変更し、エディタを終了する

  2. 再度エディタが立ち上がるので、エディタを終了する

コミットを分割する

xは任意の数字

Command
Copy
  1. git rebase -i HEAD~x
  1. 分割したいコミットのpickeditに変更し、エディタを終了する

  2. ①でeditに変更したコミットをgit reset HEAD^で取り消す
    ※ステージにも反映されてない状態

  3. 通常通りgit addgit commitを行う

  4. git rebase --continueで次のコミットに進む
    ※pickの場合、既存コミットの内容がそのまま反映される

ファイルの削除を記録

指定したファイルの削除を記録する

リポジトリ、ワークツリーから削除される。

Command
Copy
  1. git rm fileName

指定したディレクトリの削除を記録する

Command
Copy
  1. git rm -r directoryName

Gitの記録からのみファイルを削除する

リポジトリからは削除されるが、ワークツリーからは削除されない。

Command
Copy
  1. git rm --cached fileName

ファイルの移動を記録

ファイルの移動を記録する

Command
Copy
  1. git mv oldFileName newFileName

やっていることは以下の3つのコマンドと変わらない。

Command
Copy
  1. mv oldFileName newFileName
Command
Copy
  1. git rm oldFileName
Command
Copy
  1. git add

ブランチ関連のコマンド

ブランチを新規追加する

Command
Copy
  1. git branch branchName

ブランチの一覧を表示する

Command
Copy
  1. git branch

リモートリポジトリを含む全ブランチの一覧を表示する

Command
Copy
  1. git branch -a

ブランチを切り替える

Command
Copy
  1. git checkout branchName

ブランチを新規作成して切り替える

Command
Copy
  1. git checkout -b branchName

特定のコミットからブランチを作成する

Command
Copy
  1. git checkout commitID -b branchName

変更履歴を作業中のブランチにマージする

Command
Copy
  1. git merge remoteName/branchName

ブランチ名を変更する

Command
Copy
  1. git branch -m newBranchName

ブランチ名を削除する

masterにマージされてない変更がある場合は削除できない。

Command
Copy
  1. git branch -d branchName

ブランチ名を強制削除する

masterにマージしてない変更がある場合でも削除できる

Command
Copy
  1. git branch -D branchName

ブランチの基点となるコミットを別のコミットに移動して履歴を整える

Command
Copy
  1. git rebase branchName

一時避難関連のコマンド

作業を一時避難する

Command
Copy
  1. git stash

一時避難した作業を確認する

Command
Copy
  1. git stash list

一時避難した最新の作業を復元する

Command
Copy
  1. git stash apply

一時避難した最新の作業をステージ込みで復元する

Command
Copy
  1. git stash apply --index

一時避難した特定の作業を復元する

Command
Copy
  1. git stash apply stashName

一時避難した最新の作業を削除

Command
Copy
  1. git stash drop

一時避難した特定の作業を削除

Command
Copy
  1. git stash drop stashName

一時避難した作業を全て削除

Command
Copy
  1. git stash clear

タグ関連のコマンド

注釈付きタグを作成する

タグ名、メッセージ、著名を付与することができる。

Command
Copy
  1. git tag -a tagName -m "message"

軽量版タグを作成する

タグ名のみ付与することができる。

Command
Copy
  1. git tag tagName

過去のコミットにタグを作成する

Command
Copy
  1. git tag tagName commitID

タグの一覧を表示する

Command
Copy
  1. git tag

パターンを指定してタグを表示する

Command
Copy
  1. git tag -l pattern

タグの詳細を確認する

Command
Copy
  1. git show tagName

タグを削除する

Command
Copy
  1. git tag -d tagName

リモート(GitHub)関連のコマンド

リモート上にあるプロジェクトをローカルにコピーする

Command
Copy
  1. git clone url

リモートリポジトリを新規登録する

remoteNameurlを指定してない場合、アップロード時にリモートリポジトリのURL指定が毎回必要になる。

Command
Copy
  1. git remote add remoteName url

リモートを表示する

Command
Copy
  1. git remote

対応するリモートのURL表示する

Command
Copy
  1. git remote -v

リモートリポジトリへ送信する

-uオプションを使用することで、次回以降のpushがgit pushのみで行える。

Command
Copy
  1. git push -u remoteName branchName

タグをリモートリポジトリに個別送信する

Command
Copy
  1. git push remoteName tagName

タグをリモートリポジトリに一斉送信する

Command
Copy
  1. git push remoteName --tags

リモートからフェッチで情報を取得する

取得したデータはワークツリーではなく、ローカルリポジトリに追加される。

ワークツリーに反映したい場合はmergeが必要

Command
Copy
  1. git fetch remoteName

リモートからプルで情報を取得してマージする

Command
Copy
  1. git pull remoteName branchName

リモートからプルで情報を取得してリベースする

GitHubの内容を取得したいだけの時は、マージコミットが残らないリベースを使用する。

Command
Copy
  1. git pull --rebase remoteName branchName

リモートの詳細情報を表示する

Command
Copy
  1. git remote show remoteName

リモート名を変更する

Command
Copy
  1. git remote newRemoteName

リモートリポジトリを削除する

Command
Copy
  1. git remote rm remoteName

Gitコマンド入力の効率化

コマンドにエイリアスを付ける

以下はcommitciで実行できるようにしたもです。

--globalはPC全体の設定を変更する。

--globalを付けない場合、特定のプロジェクトのみで使用できる。

Command
Copy
  1. git config --global alias.ci commit

設定後、git commitを以下のコマンドで実行することが可能となる。

Command
Copy
  1. git ci

ステージとコミットを同時に行う

Command
Copy
  1. git commit -m message

その他

Gitのバージョン確認

Command
Copy
  1. git version

Gitの設定確認

Command
Copy
  1. git config --list

書籍でGitを学ぶ

アイコン画像

もみじ

これからGitを学びたい方、プロジェクトで使えるようになりたい方には、ぜひ手に取ってほしい一冊です。

私もこの本でGitの操作方法について学びましたが、GitやGitHubの基本的な操作から、実際にコードを管理する方法まで、初心者にも分かりやすく解説されてました。

特に良かったのは、手を動かしながら覚えていける点とコマンドラインだけではなく、SourceTree(クライアントソフト)を使用したGitの操作方法の説明があったところです。

もしGitに苦手意識があるなら、ぜひこの本を読んでみてください。

初心者でもスムーズに学べる内容が詰まっています。

udemyでGitGitを学ぶ

アイコン画像

もみじ

Gitの仕組みを理解しながら学習したいという方におすすめの講座です。

私もこの講座でGitの操作方法について学びましたが、 コマンドがどのような仕組みで実行されているのか図解で説明がありとても理解しやすかったです。

今までGitを何となく使用しているだけで、Gitが何をしているのか理解できていない部分がありましたが、それらを理解することができました。

実際にコマンドラインで手を動かしながら学習できるため、初心者でもスムーズに学ぶことができます。

-プログラミング
-