・今となっては、当然のごとく使用していることを、ただ手紙としてしたためるだけの記事の第八弾。
・昨今重要視されている「効率的」「論理的」「現実的」から逃避して、ひたすら時間跳躍ごっこという幻想世界での生活を貫いている。
・正当化するために無理矢理、「備忘録としても役立つ」とかの長所を捻りだして対応するが、ただ私はこの「おとぎ物語」の主人公になりたいだけ。
・よし。今回は入社後、知っておけばよかったことを書こう。
Gitコマンドについて
<当時>
- 「使用コマンド」・・・作成(init)からプッシュ(push)までの基本手順や、基本ブランチ操作(作成や切り替え)くらいしか、使うことがなかった。
※そのため、それ以外は知らなかった。
※またVSCodeでのGUI操作で主に使用していたため、コマンド操作はあまり行わなかった。
<現在>
・こちらの記事を参考にしながら、担当内容部分の機能はもちろんのこと、それ以外の機能の学習として整理。
・覚えるためにGUI操作ではなく、極力コマンド操作で対応。
・下記、現状最低限覚えておく一覧(※これ以外にもまだ、Gitにはたくさんのコマンドやオプションがある。)
コマンド一覧
1. 情報(名前、メールアドレス追加)
$ git config --global user.name "ユーザー名"
$ git config --global user.email "メールアドレス"
2. 設定情報一覧
$ git config --list
3. Git管理対象下にいれる(初期化)
$ git init
4. 変更ファイルをGit管理下に追加(ステージング)
・全て追加。
$ git add .
・変更分全て追加。
$ git add -u
・ファイル指定追加。
$ git add index.html
・拡張子指定追加。
$ git add *.html
・対話形式追加。
$ git add -i
5. コミット
・ステージング分全て。
$ git commit -a
・メッセージありでステージング分全て。
$ git commit -a -m "First commit"
・指定ファイル名。
$ git commit index.html
6. コミット関連各種操作
・直前のコミットメッセージ変更
$ git commit --amend
・直前のコミット取り消し(ローカルディレクトリの内容変更無し。)
$ git reset --soft HEAD^
・直前のコミット取り消し(ローカルディレクトリの内容変更)
$ git reset --hard HEAD^
・直前のコミットから2個分を取り消し(ローカルディレクトリの内容変更無し。)
$ git reset --soft HEAD~2
・コミットのタグ作成。(注釈無し)
$ git tag "タグ名"
・コミットのタグ作成(注釈有り)
$ git tag -a "タグ名" -m "注釈分"
・コミットタグ一覧確認
$ git tag
7. リモート接続(GitHub使用)
・リモートリポジトリ接続
$ git remote add origin https://github.com/abcdef/ghi.git
・リモート接続先確認
$ git remote -v
・リモート接続変更
$ git remote set-url origin https://github.com/bbbbb/ccccc.git
8. プッシュ
・カレント(現在作業中)ブランチをリモートの同名ブランチにプッシュ。
$ git push origin ブランチ名
・カレント(現在作業中)ブランチをリモートの同名ブランチにプッシュ。(※便利)
$ git push origin HEAD
・「u」オプション追加で、ブランチを追跡対象にいれる。
$ git push -u origin master
・「f」オプション追加で、強制プッシュ。
$ git push -f origin master
9. クローン
・リモートからローカルへ持ってくる(クローン)。
$ git clone http://abcdef.com/ghijk.git
・ブランチを指定して、クローンしてくる。(タグ指定も同様。)
$ git clone -b ブランチ名 http://abcdef.com/ghijk.git
9. 変更取得
・リモートから変更点を取得して、反映。(fetchとmergeを同時に行う。)
$ git pull
・リモートから変更点を取得するのみ。反映はしない。
$ git fetch
・取得した変更点を反映する
$ git merge FETCH_HEAD
・取得した変更点を反映する(ブランチ指定)
$ git merge ブランチ名
10. 変更状態確認
・変更状態の確認
$ git status
11. 差分確認
・インデックス(ステージング領域)の変更点比較をする。
$ git diff
・直前コミットの比較をする。
$ git diff HEAD
・直前コミットとインデックスの比較。
$ git diff --cached HEAD
・コミット同士の比較をする。
$ git diff 比較元のコミット 比較先のコミット
12. ブランチ操作
・ブランチ状態確認。
$ git branch
・新しいブランチ作成
$ git branch ブランチ名
・ブランチ切り替え
$ git checkout ブランチ名
・ブランチ作成と切り替えを同時に行う。
$ git checkout -b ブランチ名
・ブランチ名の変更
$ git branch -m 旧ブランチ名 新ブランチ名
・ブランチの削除
$ git branch -d ブランチ名
13. リベース(整理)
・分岐元ブランチから分岐先ブランチへ反映。(※実行は分岐先のブランチ2で行う。)
$ git rebase 分岐元ブランチ
14. スタッシュ(退避)
・現在の作業を一時的に退避。
$ git stash save
・退避作業の一覧表示
$ git stash list
・退避作業の復元
$ git stash pop
・退避作業の削除
$ git stash drop
・退避作業の全削除
$ git stash clear
15. 検索
・単純検索
$ git grep 検索単語
・引数指定検索
$ git grep -e 検索単語
・複数単語検索(AND検索)
$ git grep -e 検索単語1 --and -e 検索単語2
16. ブレーム(特定)
・行ごとのコミッター表示。
$ git blame ファイル名
・ブランチを指定して、クローンしてくる。(タグ指定も同様。)
$ git clone -b ブランチ名 http://abcdef.com/ghijk.git
17. 掃除
・不要なオブジェクト(2週間以上経過のもの)を削除して、最適化。
$ git gc
・不要なオブジェクト(全て)を削除して、より強力に最適化。(※頻繁には行わない。)
$ git gc [--prune=all] [--aggressive]
まとめ
- 今回は、Gitコマンドということで、バージョン管理の真髄を味わうことなく、基本操作で満足している頃を思い出しながら、記事を書く。
- ここまでの膨大なコマンドがあっても、Gitの能力の半分も引き出せていないという事実を、過去の私が知ったときの、きらめきに満ちた消沈表情を拝みたいと切に願う。
- ということで、より一層の表情筋向上のため、他にも便利なコマンドを覚えて、送りつけることにしよう。
参考
-
https://qiita.com/kohga/items/dccf135b0af395f69144
→こちらの記事を参考にいたしました。大変お世話になりました。