Gitコマンドの使い方を基本から学ぶため、よく使う使用方法を書き残します。基本的なcommandである。fetch、status、checkout、branch、merge、logを覚えれば、更新等ができます。初心者は更新よりも前に取得と現在地を知る方法を学びましょう
現在地把握系コマンド
ローカルブランチとリモートブランチという概念があります。
git branch
ローカルブランチの一覧を表示、今いるブランチを確認できます!
git branch
Tips
オプションを付けると下記のようなことができます。ほかにもありますが
// リモートブランチの一覧を表示
git branch -r
// マージ済みのブランチの一覧を表示する
git branch --merged
// マージされていないブランチの一覧を表示
git branch --no-merged
git status
作業ディレクトリでの現在の状態を表示
変更されたファイルやステージされた変更、未追跡のファイルなどの情報等が見れます。
git status
git log
最新コミットから古いコミットに向かって、コミット履歴が表示されます。
- コミットハッシュ: コミットを識別するための英数字の羅列
- コミット日時: コミットが行われた日時
- コミット者: コミットを行ったユーザーの名前とメールアドレス
- コミットメッセージ: コミット内容を説明するメッセージ
git log
Tips
# 最新の5件の取得
git log -n 5
# 特定のファイルのみの履歴
git log -- path/to/*.sh
# コミットメッセージに "feat:" という文字列を含むコミットのみを検索するオプション
git log --grep='feat:'
取得系コマンド
git fetch
リモートリポジトリの最新化
すべてのリモートリポジトリから最新の情報を取得します。
これにより、リモートブランチが最新の状態となる、ローカルブランチにマージされるわけでは無い。
git fetch
git merge
リモートブランチをローカルブランチにマージします。
言い換えるとローカルの現在のブランチにリモートの例えばorigin/mainブランチの最新のコミットをマージします。
git merge リモートブランチ名
# 例
git merge origin/main
–ff-only と git rebaseの違い
# このような履歴があった場合
A---B---C (main)
\
D---E (feature)
–ff-only は、 ブランチをシンプルに進めるだけで、マージコミットを作成しません
※ 現在のブランチ(feature)がターゲットブランチの先頭に追いついていない場合、エラーメッセージを表示して操作を中止します。
# featureにてgit merge origin/main --ff-only を実行すると下記のようになります。
A---B---C (main)
\
D---E (feature)
# ↓ git merge origin/main --ff-only
# エラーが発生します。
fatal: Not possible to fast-forward, aborting.
git rebaseは、
# feature にて git rebase origin/main を実行すると下記のようになります。
A---B---C (main)
\
D---E (feature)
# ↓ git rebase origin/main
A---B---C (main)
\
D'---E' (feature)
–ff-only を成功させるには、マージ対象と先頭を一致させる必要がある
# featureにてgit merge origin/main --ff-only を実行すると下記のようになります。
A---B---C (main)
\
B (feature)
# ↓ git merge origin/main --ff-only
A---B---C (main)
\
B---C (feature)
# ↓ つまり
A---B---C (main, feature)
更新系コマンド
ここは更新中
まとめ
コマンドもオプションもたくさんあり、理由わからなくなりますが、
主要コマンドとよく使うオプションだけ覚えておけば十分です。
寄付の依頼
もし、少しでもご参考になりましたらサイト運営への寄付をお願いします。
とても励みになります。
If you would like to help, please make a donation to the site management.
It is very encouraging.
BTC (ビットコイン) アドレス |
---|
35AfkHtN3paTC1iNVtHg6BDmCnHmffzQWM |
DEEPコイン アドレス |
---|
0x43Dbe7F99b4A31bF184b98A8A814ADEC48FB789D |
コメント