(図100)↓ここを変更したい
●STEP0:前提の確認(サンプルデータ)
(図101)
●STEP1:コミット(Commit)の編集
> git commit --amend
・最後のコミットメッセージを表示した状態でエディタが起動する
・そこでコミットメッセージの編集が可能。
・「-m」オプションを使用すると古いメッセージを取り下げして、新しいメッセージを使える
(図111)
↓
・エディタが起動する
(図112)
↓
・「i」押下するとメッセージを編集できる
(図113)
↓
・メッセージを修正して「Esc」押下
(図114)
↓
・「:wq」と入力(保存して終了)
(図115)
↓
・メッセージ修正完了
(図116)
●STEP2:プル(Pull)→プッシュ(Push)の再実行
・①プル(Pull)
→リモートとの差分をローカルに反映
(構文)
> git pull [リモート名] [ブランチ名]
(例)
> git pull https://github.com/Rainbow-Engine/TempRepo2.git 0001-test-branch
(図121)
↓
・git logで確認
→amend前の「bbbbb」のメッセージの履歴が取得される
(図122)
・②プッシュ(Push)
→ローカルの修正(コミットメッセージの修正)をリモートに反映
(構文)
> git push [リポジトリ名] [ブランチ名]
(例)
> git push https://github.com/Rainbow-Engine/TempRepo2.git 0001-test-branch
(図131)
↓
・リモートにも反映された
(図132)
●STEP3:(影響を受ける方)変更をプル(Pull)する方法
上記のプッシュにより影響を受ける他の開発者は、以下を実施する必要がある。
> git fetch origin
> git reset --hard origin/master # ローカルのコミットは消失する
→「reset –hard」は既にブランチに対して行った修正が消失するため、要注意(取り込むなら、それを理解して受け入れたうえで)
(注意事項)
・もし誰かが同じBranchに変更をPushしていた場合、競合する恐れがある
・それを防ぐため「–force-with-lease」オプションを指定する
・「–force-with-lease」は既に別の変更があった場合に、こちらの変更をAbord(中断)させる
・ブランチは「必ず指定」すること
・明示的にブランチを指定しない場合、GitはデフォルトのPush設定を使用する。
・デフォルトのPush設定が「matching」の場合、複数のBranchに意図しない影響が出る恐れがある
(1-2) やりたいこと②:リモートリポジトリにPush&Pull RequestをMerge後にコミットメッセージを変更したい
(図200)↓ここを変更したい
●STEP0:前提の確認(サンプルデータ)
(図201)
以下で紹介するのは、ややアナログなやり方です(もっと良い方法あれば教えてください)。
具体的には「リモート側でプルリクエストをRevert(取り消し)」したのち、その取り消しを「ローカル側にPull」する事で、一旦Commit~Push~Mergeをする前の状態に戻すやり方です。
●STEP1:プルリクエストを「Revert」
(図211)
↓
・「Create pull Request」(Revert=取り消しのプルリクエスト)
(図212)
↓
・「Merge pull request」(Revert=取り消しのプルリクエストをマージ)
(図213)
↓
・「Confirm」
(図214)
↓
・取り消し成功
(図215)
↓
・ローカル側でPull
(図216)
↓
これで一旦Commit~Push~Mergeをする前の状態に戻せました。
後はCommit~Push~Mergeの流れを再度実行する必要があります。