ナベブログ

written by M-Watanabe

Gitのコマンド【Git備忘録3】〜初心者向け〜

gitのロゴ

こんにちは、ナベです。

最近、Git(ギット)を勉強しました。
備忘録として、今回はザックリとGitのコマンドをまとめてみました。

 

git clone

git clone HTTPS|SSH

  • (他からフォークしたりした)リモートリポジトリ を、自分のローカルリポジトリにコピーする。

 

git init

git init

  • ローカルディレクトリの初期化。
  • 「.git」という隠しファイルが加えられる。
  • ローカルリポジトリまでが設定・準備される。

※リモートリポジトリからクローンしたファイルには、もう「.git」ファイルはあるので、git initコマンドは必要ない。

 

git add

git add ファイル名

git add .

  • ローカルファイルをステージングする。
  • 「git add . 」なら、ディレクトリ内の全てのファイルをステージング。

 

git commit

git commit -m "コメント"

  • ファイルをローカルリポジトリにコミットする。
  • いわゆる、「いつでも戻れるセーブデータをつける」といった感じ。

 

git push

git push -u origin master

  • ローカルリポジトリのデータを、リモートリポジトリ へ送る。(上記の例だと)
  • 上記は、origin(リモートリポのデフォ名)に、masterブランチを、pushしている。
  • 「-u」オプションは、同名の上流ブランチを設定する。

git remote

git remote add origin HTTPS|SSH

  • リモートリポジトリの関連づけ。(プッシュする前に)

 

git status

git status

  • ファイルがステージングされたかの確認。

 

git log

git log

  • 過去コミットの履歴を確認。

 

git reflog

git reflog

  • コミット履歴が表示される。コミットID(ハッシュ値)が確認できる。

 

git pull

git pull origin master

  • リモートリポジトリ の内容を、ローカルリポジトリに更新する。
  • git 「fetch + merge」 origin/master みたいなもの。

 

git merge

git merge ブランチ名

  • 今いるブランチに、「ブランチ名」に記述したブランチを合流させる。

 

git branch

git branch

  • ブランチの一覧を見る

 

git branch -m 現ブランチ名 変えたいブランチ名

  • 今いるブランチの名前を変更する

 

git branch -D ブランチ名

  • 「ブランチ名」に記述したブランチを削除する(今いるブランチでは無効)

 

git checkout

git checkout ブランチ名

  • 「ブランチ名」に記述したブランチに変える。

 

git checkout -b ブランチ名

  • 「ブランチ名」に記述したブランチを作成し、そのブランチに移動する。

 

git checkout ファイル名

  • 記述したファイルを、今いるブランチの最新コミットの状態に戻す。

 

git checkout コミットID

  • 指定したコミットIDの状態に戻す

過去のコミットに戻す

git checkout HEAD^

  • ひとつ前のコミットの状態に戻す。
  • 「^」の数で、いくつ前の状態の戻るか指定できる。「^^^^^」なら5つ前。
  • 「HEAD」を「@」にしても同じ。
  • 「HEAD^^^^^」は、「HEAD~5」と同じ。

 

git reset

git reset ファイル名

  • ステージング(インデックス)したファイルを戻す。(「git add」の取り消し)

 

git reset --hard HEAD

  • 最終コミットしたときの状態まで戻して、編集中のデータを消す。

 

git reset --hard HEAD^

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

 

git reset ORIG_HEAD --hard

  • 直前のリセットを取り消す。

 

git stash

git stash

  • 作業中の状態を、コミットせずに一時的に保留・退避させる。

 

git stash list

  • スタッシュは何度も行えるので、そのスタッシュした一覧を表示する。

 

git stash pop

  • スタッシュしていた内容を(削除した上で)、今いるブランチに復活させる。
  • 「drop + apply」みたいなもの。
  • 「git stash pop @{数字}」で、いくつかスタッシュしているものの中から選択できる。

 

git stash drop

  • スタッシュしていた内容を削除する。
  • 「git stash drop @{数字}」で、いくつかスタッシュしているものの中から選択できる。

 

git stash apply

  • スタッシュしていた内容を、今いるブランチに復活させる。
  • 「git stash apply @{数字}」で、いくつかスタッシュしているものの中から選択できる。

 

git rebase

git rebase master

今いるブランチ(分岐先)を、マスターブランチ(分岐元)に、今までのコミット込みで統合させる。

 

git fetch

git fetch origin

  • リモートリポジトリ(origin)のデータを取得する。(コミットはしない。)

 

git revert

git revert コミットID

  • 指定したコミットを元に戻す。(打ち消したいコミットを打ち消すコミットを作成する。)

 

git rm

git rm ファイル名

  • 指定したファイルを、Gitの管理対象から外す。
  • ステージングエリア(インデックス)やワーキングエリアからファイルを削除。

 

git mv ファイル名 変えたいファイル名

  • ファイル名を変える。(リネームする)

 

git mv ファイル名 移動先のディレクトリ名

  • 指定したディレクトリに、ファイルを移動する。

 

git blame

git blame -L 5,9 ファイル名

  • 指定したファイルの、特定の行の変更履歴(いつ・誰が)を調べられる。
  • 上記の例だと、ファイルの5~9行目を指定している。

 

git tag

git tag タグ名 コミットID

  • 指定したコミットへ、タグをつける。

 

git tag タグ名 コミットID -a -m "注釈コメント"

  • 指定したコミットへ、注釈(コメント)付きのタグをつける。
  • 「-a」オプションで、注釈付きタグを作成している。

 

git tag -d タグ名

  • タグを削除する。

 

git show

git show 〇〇

ファイルの内容や、コミットの差分、タグといったものの情報を表示する。

 

git –version

git --version

  • Gitのバージョンを確認する。

Gitのバージョンを更新したいとき

ここで紹介するのはbrewがインストールされていることが前提。

brew update

brew install git

上記2つのコマンドを実行してEnterキー。
その後、念のため再度バージョンを確認。

 

git config

git config --global user.name "名"

git config --global user.email "名"

  • Git をインストールしたときにおこなう、個人の識別情報の設定。

 

git config --local 〇〇

  • 特定のプロジェクトに、別途違うアカウント情報を設定する(サブアカウント作成のようなもの)。

 

git cherry-pick

git cherry-pick コミット1 コミット2 -n

  • 指定した特定のコミットのみを適用する。
  • 上記の例だと、ハッシュ値で指定されたコミット1とコミット2を、自動でコミットさせないで適用している。
  • 「-n」のオプションは、「–no-commit」のこと。

 

git diff

git diff 〇〇

  • データの変更差分をみれる。
  • 様々なデータを比較できる。つまり、できることが多い。

 

git grep

git grep

  • リポジトリ内を検索する。
  • オプションによって、様々な検索ができる。

 

git bisect

git bisect start スタートポイント ゴールポイント(過去コミット)

git bisect good|bad

  • 二分検索のよって、問題となっているところを特定する。
  • テストした結果が問題なければ「git bisect good」。問題があれば「git bisect bad」を実行していって特定していく。

 

スカッシュ(squash)

いくつかのコミットを1つにまとめる。

 

フォーク

(GitHubで)他の人のリモートリポジトリ を、自分のリモートリポジトリにコピーする。