あなたの問題を正しく理解していれば、いくつかのコミットを含む機能ブランチが作成されています。そのうちの1つは、削除してはいけないファイルを削除したものです。この場合、対話型のリベースを行うことは、この問題を解決するための実行可能なオプションである必要があります。インタラクティブなリベースでは、フィーチャーブランチの履歴にある各コミットで何が起きたかを(他のものの中でも)修正することができます。あなたの場合、特定のファイルの削除を元に戻したいと思うでしょう。ここでは、この操作を行うことができる方法である。
git checkout feature
git rebase -i HEAD~4 # replace 4 with however far back is the commit
# containing the deletions
これはfeature
ブランチに作られた最新の5つのコミットを示すウィンドウが開くはず:
ここ
pick 07c5abd message for commit A
pick dl398cn message for commit B
pick 93nmcdu message for commit C
pick lst28e4 message for commit D
pick 398nmol message for commit E
、最初は示さコミット最古です、最後は最新です。デフォルトのオプションはpick
です。あなたが誤ってファイルを削除した一つである(例えばB
をコミット)、およびこれであなたを残して、edit
でpick
を交換して下さい:
pick 07c5abd message for commit A
edit dl398cn message for commit B
pick 93nmcdu message for commit C
pick lst28e4 message for commit D
pick 398nmol message for commit E
そして、このウィンドウを閉じる必要がありますファイル、およびリベースを保存開始する必要があります。 GitがコミットB
に達すると、それは一時停止して、あなたが行ったことを変更するための変更を与えます。 git status
と入力すると、削除したファイルが表示されます。削除されたファイルを復元するだけで使用します。あなたが削除されたファイルを復元し、タイプを終えた
git checkout HEAD path/to/deleted/file
は:
git rebase --continue
これは効果的にあなたfeature
ブランチから削除を削除する必要があります。今すぐあなたのプルリクエストが更新され、うまくいけば精査を渡す必要があり
git push --force origin feature
:あなたはfeature
の歴史を書き直しているので、あなたが経由でリポジトリにプッシュ強制しなければならないことである、ここで1つの最後の癖があります。