#【GitHub リベース スタッシュ タグ】
山浦清透さん いつもありがとうございます。
Git:もう怖くないGit!チーム開発で必要なGitを完全マスター
##リベース
リベースは、変更を統合する際に、履歴をきれいに整えること。
マージのようにただ変更内容を取り込むだけではないところが相違点。
リベースで履歴を整えた形で変更を統合する。
→ git rebase < ブランチ名 >
※ブランチの基点となるコミットを別のコミットに移動する。
注意:GitHubにプッシュしたコミットをリベースするのは絶対NG
→ GitHub上の履歴が壊れてしまう恐があるため。
###マージかリベースどちらを使うか。
作業履歴を残したい場合は、マージを使う。
作業履歴を残す必要が無く、履歴をきれいにしたい場合は、リベースを使う。
###プル時にリベースする。
マージコミットを残さずに、GitHubの内容を取得したい時に使う。
GitHubの情報を単純に取得したい時に使う。
→ git pull --rebase
デフォルトで、プルの挙動をリベース方に設定する。
→ git config --global pull.rebase true
※このコマンドを実行しておくことで、プル時に--rebaseが不要になる。
##スタッシュ
スタッシュは、作業が途中でコミットしたくないけど、別のブランチで作業しないといけないような時に作業を一時退避する。
###作業を一時退避
作業を一次退避する。
→ git stash
※stashは、隠すと言う意味。変更分をstashに一次退避。
###一時退避した作業を確認
退避した作業の一覧を表示する。
→ git stash list
###一時退避した作業を復元
退避した作業を復元する。
→ git stash apply (最新の作業を復元)
→ git stash apply --index (ステージの状況も復元)
→ git stash apply [スタッシュ名] (特定の作業を復元)
※ apply:適応すると言う意味。
###一時退避した作業を削除
退避した作業を削除する。
→ git stash drop (最新の作業を削除)
→ git stash drop [スタッシュ名] (特定の作業を復元)
→ git stash clear (全作業を削除)
##タグ
タグは、コミットを参照しやすくするためにわかりやすく名前を付ける。
リリースポイントによく使う。
###タグの一覧表示
タグの一覧を表示する。
→ git tag -l ( -lを付けると絞り込みができる。)
###タグの作成
アノテーション付き(annnotated)とシンプル版(lightweight)の2種類がある。
アノテーション付きのタグを作成する。
名前やコメント、署名を付けられる。
→ git tag -a [タグ名] -m "[メッセージ]"
-aオプション:アノテーションタグを作成
-mオプション:エディタを立ち上げずにメッセージ入力が可能
シンプル版のタグを作成する。
名前のみを付けられる。
→ git tag [タグ名]
※アノテーション付きとの違いは、-aオプションが付いているかいないか。
###タグのデータを表示
タグのデータと関連付けられたコミットを表示する。
→ git show [タグ名]
###タグをリモートリポジトリに送信
タグをリモートリポジトリに送信するには、git pushコマンドが必要。
→ git push [リモート名] [タグ名]
タグを一斉に送信する。
→ git push [リモート名] --tags
※--tagsを付けると、ローカルにあってリモートリポジトリに存在しないタグを一斉送信
##おまけ
山浦清透さん ありがとうございました。
Git、GitHubの学習を一通り終えることができました。
今後のチーム開発に活かしていきます。