Git

【Git・初心者・基礎】Gitコマンド一覧

Gitの基礎用語

ヘッド【HEAD】
・今いるブランチの最新のコミットを指す
・「HEAD^」、「HEAD~」は直前のコミットを意味する
・「HEAD~{n}」は「n個前」のコミットを意味する

ワーキングツリー【Working Tree】
・今ローカルで作業している、コミットする前の状態

インデックス【index】or ステージング【Staging】
・addして追加した状態のことを指す、コミットする前の状態

ローカルリポジトリ【Local Repository
・ファイルの変更履歴を記録(手元で管理)

リモートリポジトリ【Remote Repository
・ファイルの変更履歴を記録(全員で共有)

Gitの操作

git logとは?

・コミット履歴を確認することができる

git log オプション

・「–oneline」オプションは各コミットを1行で出力する
・「–graph」オプションはブランチやマージの歴史を、log出力と共にグラフで表示する
・「–stat」でコミット済みのコミットの内容を確認することができる

$ git log --oneline --graph

git statusとは?

全体の変更点を確認する

・修正したファイル、ステージングにあるファイルなどを確認することができます

$ git status

git diffとは?

変更点の確認ができる。

・ 修正したファイルの詳細を確認できる
・ ファイル名を指定する事でそのファイルのみの詳細を確認できる

$ git diff 

git addとは?

ファイルやディレクトリをステージングに追加

・ステージングに追加 = Git管理の対象に入れる

$ git add ファイル名

git commitとは?

追加・変更したファイルをローカルリポジトリへ反映する

・「-mオプションはコミットする際にコメントを記述することができます
・「-a」オプションでaddに追加してそのままコミットができます

$ git commit -m 'コミットメッセージ'

git configとは?

gitの設定をオプションを付けることで変更、確認する事ができる

・「–global」、「–local」、「–system」オプションは範囲を指定する事ができる。

  1. system:システム全体の設定
  2. global:該当ユーザーの全リポジトリの設定
  3. local:該当のリポジトリのみ設定

・「–list」オプションは設定内容を確認できる。


$ git config --local(適用する範囲) user.name '変更名'
$ git config --global(適用する範囲) user.email メールアドレス
$ git config --local(適用する範囲) --list

git branchとは?

ブランチの一覧を表示と現在のブランチを確認できる
・「-a」オプションはリモートのブランチも表示できます
・「-D」オプションは強制削除
・「-d」オプションは削除(マージしていないブランチなどは注意されます)
・「-vv」オプションはローカルのブランチがどのリモートブランチを追跡しているか確認ができる

$ git branch オプション

git chceckoutとは?

指定したブランチに切り替えることができます

$ git branch ブランチ名

・「-b」オプションは新しくブランチを作成してかつ作成したブランチに移動する
・リモートのブランチを指定して切り替える事もできる

$ git checkout -b 新しいブランチ名 リモート名/ブランチ名

・ブランチ名にコミットIDを指定する事ができる
・「-u」オプションはリモートブランチを追跡できる

修正したファイルをリセットすることもできます

$ git checkout ファイル名 or .(すべてリセット)

git pull とは?

リモートリポジトリのブランチをローカルブランチへダウンロードするイメージです
・「pull」は「fetch」と「meger」を一つのコマンドだけで行なっています

$ git pull ローカルブランチ リモート名 リモートブランチ

git fetchとは?

リモートリポジトリの新しいデータをローカルリポジトリに取り込む。
・「-p」オプションはリモートで削除されているリモートブランチをローカルリポジトリに反映できます

$ git fetch リモート名 

git push とは?

リモートリポジトリにローカルリポジトリの変更内容を反映できます
・「-f」オプションは間違えた内容をpushしてしまった際にgit reset してから addcommitpush -f で上書きすることができます

$ git push -f リモート名 ブランチ名

「–delete」オプションでリモートのブランチを削除できます

$ git push --delete リモート名 ブランチ名

git merge とは?

ブランチとブランチを結合する事ができます
・「–squash」オプションで分岐したブランチのコミットを1つにまとめてマージする事ができる
・「–no-ff」オプションでマージコミットを残す事ができます

$ git merge --no-ff ブランチ名 

git reflog とは?

HEADの変遷を確認できる

$ git reflog 

「reflog」と「reset」でHEADを巻き戻すこともできます
・「reflog」で内容を確認「reset」でリセットをする


$ git reflog
$ git reset HEAD@{数字} --hard

git reset とは?

状態を取り消し、巻き戻すことができる

1.「–hard」はファイルの状態、add、commit全ての状態を戻す
2.「–mixed」はcommitとaddの状態を戻す。
3.「–soft」はcommitの状態を戻す。

・「git reset」だけで行なった場合はデフォルトは「–mixed」です


$ git reset --hard HEAD
$ git reset --mixed HEAD
$ git reset --soft HEAD

git rebase とは?

派生元を変更する事ができます
・派生元を変更したブランチに移動してどのブランチから派生するかを指定します

$ git rebase ブランチ名

コミットを1つにまとめる事もできます
・「HEAD~数字」でHEADからいくつまでをという指定ができます

$ git rebase -i HEAD~3

上記のコマンドを実行する「テキストエディター」が開きます
・以下の用な内容が表示されます


pick コミットA
s コミットB # まとめるコミット
s コミットC # まとめるコミット

・修正したら「:wq」でテキストエディターをセーブして終了します、あとは場合によってコミットをします

参考サイト

rebase -i」 でコミットをまとめる

git cherry-pick とは?

特定のコミットを別ブランチへコピーする事ができます
・まずはコピーするコミットのIDをみたいのでそのブランチへ移動して「git log」をします
・確認ができたらコピー先のブランチへ「checkout」します
・そしたら、「git cherry-pick コミットID」、複数指定する場合は「コミットID..コミットID」です
・コンフリクトが起きると思いますので解消して「–continue」します

$ git cherry-pick コミットID..コミットID

git stash とは?

編集した内容を残しておきたい場合に保存する事ができます
・「save」で変更を退避することができます
・「list」でstashされているリストを確認することができます
・「apply stash@{スタッシュ番号}」で状態を戻すことができます
・「drop stash@{スタッシュ番号} 」でstashしたものを削除できます


$ git stash save
$ git stash list
$ git stash apply stash@{数字}
$ git stash drop stash@{数字}

ターミナルでgitを使いやすくする設定

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

$ git --version

・Macで標準インストールしている場合は、「homebrew」の「git」にアップデートします

$ brew install git

便利な機能を設定する前の準備

・ターミナルでユーザーディレクトリに移動します

$ cd

・下記のコマンドで「git-completion.bash」 と 「git-prompt.sh」 のファイルがあることを確認する

$ ls /usr/local/etc/bash_completion.d/

・「.bash_profile」、「.bashrc」のどちらかを「vi」でファイルを開いて編集します

$ vi .bash_profile

追加しておくと便利な機能

・ターミナルにブランチ名を表示する事ができます


source ~/.git-prompt.sh
source ~/.git-completion.bash
GIT_PS1_SHOWDIRTYSTATE=true
PS1='\h:\W$(__git_ps1 "[[\033[32m]%s[\033[0m]]")\$ '

・補完機能を有効にする事ができます(Tabで補完できます)


if [ -f $(brew --prefix)/etc/bash_completion ]; then
. $(brew --prefix)/etc/bash_completion
fi

・「:wq」でセーブして「vi」を閉じます
・設定を反映します

$ source ~/.bash_profile または .bashrc

最後に一言

まだまだ、Gitのコマンド、オプションなどはありますが実際に利用するのはこんくらいだと思います(多分)、参考になれば幸いです( ̄^ ̄)ゞ

-Git
-

Copyright© Akitoblog , 2020 All Rights Reserved Powered by AFFINGER5.