laravel12.git4
R e i - D r e a m
for Laravel
TOP > Laravel Ver.12 > 環境構築(GitHub 4)REVERT
Guest
login

最終投稿日:2025年12月06日

Git操作 トラブルシューティング②
REVERT処理後マージができなくなった場合
○ 状況説明
[main] < [develop] < [develop_dev_PJ]
上記『develop_dev_PJ』で開発を開始
① ソース「hoge.txt」を改修し、リモートへプッシュする
② 本番リリースのため、[develop] < [develop_dev_PJ]へプルリクエストする
③ 本番リリースのため、[main] < [develop]へプルリクエストする
 !! エンドユーザーの都合により[main]をリリース前の状態に戻す事となった
④ [develop]をローカルへプルし【revert】する。
⑤ [develop]をプッシュし、[main]へプルリクエストする
 [main]の状態を戻す事ができました。
 数日後エンドユーザーから『やっぱり最新の状態にして』との報告を受ける
⑥ 開発ブランチである[develop_dev_PJ]を[develop]へプルリクエストする
 !! 【不具合】差分がないと言われマージする事ができない !!
○ 操作概要
① hoge.txtを改修

$ git checkout -b develop_dev_PJ origin/develop_dev_PJ
branch 'develop_dev_PJ' set up to track 'origin/develop_dev_PJ'.
Switched to a new branch 'develop_dev_PJ'

$ git add .

$ git commit -m "[PJ]コミット"
[develop_dev_PJ ae0bd60] [PJ]コミット
1 file changed, 7 insertions(+), 1 deletion(-)

$ git push origin develop_dev_PJ
Enumerating objects: 7, done.
Counting objects: 100% (7/7), done.
Delta compression using up to 12 threads
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 456 bytes | 456.00 KiB/s, done.
Total 4 (delta 2), reused 0 (delta 0), pack-reused 0 (from 0)
remote: Resolving deltas: 100% (2/2), completed with 2 local objects.
To https://github.com/XxxXxx/test_main.git
  bde507c..ae0bd60 develop_dev_PJ -> develop_dev_PJ

②③は画面操作のため割愛します
④⑤実施

$ git checkout develop
Switched to branch 'develop'
Your branch is up to date with 'origin/develop'.

$ git pull origin develop
remote: Enumerating objects: 1, done.
remote: Counting objects: 100% (1/1), done.
remote: Total 1 (delta 0), reused 0 (delta 0), pack-reused 0 (from 0)
Unpacking objects: 100% (1/1), 917 bytes | 53.00 KiB/s, done.
From https://github.com/XxxXxx/test_main
  * branch develop -> FETCH_HEAD
  1cfaf42..1b0e120 develop -> origin/develop
Updating 1cfaf42..1b0e120
Fast-forward
  hoge.txt | 8 +++++++-
  1 file changed, 7 insertions(+), 1 deletion(-)

$ git revert -m 1 HEAD

$ git push origin develop
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 12 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 429 bytes | 429.00 KiB/s, done.
Total 3 (delta 1), reused 0 (delta 0), pack-reused 0 (from 0)
remote: Resolving deltas: 100% (1/1), completed with 1 local object.
To https://github.com/XxxXxx/test_main.git
  1b0e120..c7b2c15 develop -> develop

ポイント

『revert』操作では途中『vim』操作が発生します。
 [vim]操作に関しては『 環境構築(GitHub 2)』の
 「ブランチ同士のマージ」を参照してください

⑥ 開発ブランチである[develop_dev_PJ]を[develop]へプルリクエストする
GitHub

      There isn’t anything to compare.

 何と『比べるものは何もありません。』と画面に表示されてしまいます。。
○《 原因 》
[revert]処理は内部的な『コミット履歴』は残り続けます。
そのため今回プリリクエストしたい[develop_dev_PJ]の内容は、
[develop]のコミット履歴に存在するために発生する事象となります。
○解消方法
① 開発ブランチ[develop_dev_PJ]の履歴を確認し、改修ソースを確認する
② 改修ソースを全て『コメントアウト』し、強制的に差分を発生させる
③ コミット、プッシュする
④ [develop_dev_PJ]を[develop]へプルリクエストする
⑤ [develop]を[main]へプルリクエストする
①②③実施

$ git checkout develop_dev_PJ
Switched to branch 'develop_dev_PJ'
Your branch is up to date with 'origin/develop_dev_PJ'.

$ git log --oneline develop_dev_PJ
d104076 (HEAD -> develop_dev_PJ, origin/develop_dev_PJ) [PJ]コミット
82acc6b コミット

$ git diff --name-status 82acc6b..d104076
M            hoge.txt

$ git add .

$ git commit -m "[PJ]コメントアウトをコミット"

$ git push origin develop_dev_PJ
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 12 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 445 bytes | 445.00 KiB/s, done.
Total 3 (delta 1), reused 0 (delta 0), pack-reused 0 (from 0)
remote: Resolving deltas: 100% (1/1), completed with 1 local object.
To https://github.com/XxxXxx/test_main.git
  d104076..56e6470 develop_dev_PJ -> develop_dev_PJ

※[hoge.txt]が改修ファイルなので、全行コメントアウトした後にコミット・プッシュ
④ プルリクエストを実施すると、途中以下警告がでて進めなくなります
This branch has conflicts that must be resolved
直下にリンク『web editor』が表示されているのでクリックする
[エディタモード]となるので《競合》を解消します。
※先ほど履歴確認で取得した《ID番号》を利用し画面から改修内容が確認できます。
 https://github.com/{user名}/{リポジトリ名}/compare/82acc6b...d104076
[Mark as resolved] > [Commit merge]を押下する事でプルリクエストを続行できます。
⑤ [main]へのプルリクエストは特に問題なくできるはずです。
最後に

以上で[main]ブランチまでを[revert]前の状態に戻す事に成功しました。
後処理としてローカル側の[develop][develop_dev_PJ]も《pull》し、
最新状態にする事を忘れずに。。

レンズモード 【新規購入限定用】
ログインしてコメントを残そう!!


きっぷる