9
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【一年生の頃の私へつづる言葉⑧】気づいて。私はGitの本領をこれっぽちも引き出せていないことに。

Last updated at Posted at 2019-01-29

・今となっては、当然のごとく使用していることを、ただ手紙としてしたためるだけの記事の第八弾。
・昨今重要視されている「効率的」「論理的」「現実的」から逃避して、ひたすら時間跳躍ごっこという幻想世界での生活を貫いている。
・正当化するために無理矢理、「備忘録としても役立つ」とかの長所を捻りだして対応するが、ただ私はこの「おとぎ物語」の主人公になりたいだけ。
・よし。今回は入社後、知っておけばよかったことを書こう。

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の能力の半分も引き出せていないという事実を、過去の私が知ったときの、きらめきに満ちた消沈表情を拝みたいと切に願う。
  • ということで、より一層の表情筋向上のため、他にも便利なコマンドを覚えて、送りつけることにしよう。

参考

9
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?