P201 A-B-C-D-E-F-G のコミットDに問題があり、取り消したい場合
git revert main~3
A-B-C-D-E-F-G-D' D'はコミットDの逆(Dの効果を打ち消すようなコミット)
P202 git commit --amend コミット後ログメッセージを修正できる。
それ以外の活用方法として:
例:①誤ったコミット ②ファイルを再編集して、新たにコミット もできるが、
①speech.txt修正 git diffでインデックスと作業ディレクトリの差分チェック
②git add speech.txt ③git commit --amend 必要ならコミットメッセージ編集
git show-branch --more=5 git shouで確認
A-B-C HEAD を A-B-C' HEAD に変更したというイメージ
P205 git reset A-B-C-D A-B-C-D
--soft 〇
--mixed 〇 〇
--hard 〇 〇 〇
P214 git cherry-pick 指定したコミットFをカレントブランチに加える 以下の場合はF’
A-B-C-D-E-F-G-H dev A-B-C-D-E-F-G-H dev
| |
V-W-X-Y-Z rel_2.3 V-W-X-Y-Z-F' rel_2.3
git checkout rel_2.3 のあと git cherry-pick dev~2
P217 reset,revertとcheckoutの関係
ブランチを移るとき:git checkout またはgit switch
git resetはブランチ切り替えはしない:ブランチ名指定するとカレントブランチをリセットしてしまう git rest --hardは既知の状態を復元することが目的
P218 他の開発者があなたの李ぴ時取りをクローンしたり、一部のコミットをフェッチしたりしているときは、リポジトリ内のコミット履歴を書き換えるようなコマンドを使うべきではない。代わりにgit revertを使う。git resetやgit commit --amendを使ってはならない。
P219 rebaseについて:書籍にはないが、簡単な例で試してみる
①topicブランチで git rebase main ②mainブランチで git merge --no-ff topic
(--no-ffはfast-forwardなしで、そのほうがあとで管理しやすいとのこと)
③git log --graph で確認できる
もし、①で競合が発生したら、②エディタで競合の原因(main_file)を編集し、競合を解決 ③git add main_file git rebase --continue(P220) ④mainブランチで git merge --no-ff topic
P221 rebaseを途中でやめたいとなったら git rebase --abort
P225 git rebase -i コミット とすると、指定したコミット以降のコミットが編集可
エディタで先頭のpickをsquashにすると、直前のコミットの結合され、新しいコミットメッセージのテンプレートができる。先頭の#は無視される。
git stash -m コメント でインデックスと作業ディレクトリの内容全体を一時退避 git stash popでもどす
git stash apply + git stash drop =git stash pop
例: ①file1とfile2を作成、add、commit ②file1に追加文字 ③git stash -m 'Tinkerd file1'
④git commit --dry-run 仮コミットしてみると、コミットするものなしと表示、git stashでまったく、残っていない状態であることを示している?
⑤ file3を作成 ⑥git stashしても失敗 新しい未追跡ファイルは-uが必要 ⑦ git stash -u -m 'add new untracked file3'
0 件のコメント:
コメントを投稿