2016-08-29 18 views
2

マシンで生成された一部のファイルを削除しましたが、これも追跡されています。いくつかの時間前に削除した後、私は複数のコミットを行い、プルリクエストを行いました。githubプルリクエストから削除されたファイルを削除しますか?

しかし、寄稿者は、削除部分をコミットから削除したいと思っています。

どうすれば修正できますか? (gitのrmを、gitのチェックアウトなど)

error: pathspec 'filepath' did not match any file(s) known to git.

ファイルがローカルで削除されました:

ほとんどの時間は、私はこのエラーを取得します。

答えて

1

ファイルを削除した場所をコミットして下さい:

git checkout SHA1~1 -- path/to/file 

繰り返しを復元したい各削除されたファイルのために:

git log -n1 -- path/to/file 

1からファイルを復元するには、それを削除した1前にコミット。

コミットし、プルリクエストを更新するためにブランチにプッシュします(1つのコミットを追加します)。

1

あなたの問題を正しく理解していれば、いくつかのコミットを含む機能ブランチが作成されています。そのうちの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をコミット)、およびこれであなたを残して、editpickを交換して下さい:

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つの最後の癖があります。

関連する問題