この翻訳から:コミットGitリポジトリから削除ファイル
私はGitのを使用していると私は約束している使用していくつかのファイルを 、私はGitのを使用しています、私はいくつかの書類を提出しています
git commit -a
その後、私は、ファイルが持っていたことが判明誤ってコミットに追加されて。 その後、私は提出にファイルを追加するために間違いを発見しました。
どのように私はからファイルを削除することができます ?コミット最後の 最後の提出からファイルを削除する方法は?
#1階
参考:https://stackoom.com/question/qN2l/ Gitの提出からファイルを削除
ハウス#2
ATTENTION! ご注意! あなたの前のコミット、およびからのファイルの場合にのみ削除したいのKeep IT ONディスク、読むjuzzlinの答えだけで上記の。 あなたは以前に提出してからファイルを削除したい場合は、ディスクに保存されている、読んでください上記のjuzzlinを答えます。
これはあなたのIF ISコミットし、あなたがする最後のリポジトリで、お住まいの地域から完全に削除ファイルとリモートで、次のことができます。 これがあれば、あなたの最後のコミット、あなたがしたい完全にローカルおよびリモートリポジトリからファイルを削除し、次のことができます。
- ファイルを削除し
git rm <file>
たファイルを削除git rm <file>
- フラグを修正してコミット:
git commit --amend
変更されたフラグを提出します:git commit --amend
修正フラグが再びコミットするgitの伝えコミット。これは最後にコミット(ない二つのブランチをマージするという意味で)「マージ」が、 補正フラグはない二つのブランチをマージするという意味で(「マージ」を再提出するGIT伝えますが、最終提出のa)に提出。
ASコメントで述べると、使用してgit rm
のここでの壁紙が使用してのようなものですrm
!コマンド自体を レビューとして、ここで使用されているgit rm
だけの使用のようなrm
コマンド自体を!
ハウス#3
あなたは上の変更押されていない場合は、使用可能なサーバを 使用すると、サーバー上の変更をプッシュする必要がない場合は、使用することができます
git reset --soft HEAD~1
これは、すべての変更をリセットし、戻ります 1が戻ってコミットするには 、それがコミットするすべての変更および復帰をリセットします
あなたの変更をプッシュしている場合は、続く @CharlesBによって答えとしてのステップを 使用すると、変更をプッシュする必要がある場合は、手順@CharlesBに従ってください。
#4階
RMを使用してファイルを削除すると、それを削除します ! ファイルを削除する使用RMはそれを削除します!
コミットするためには、必ず追加している削除するのではなく、gitのように、この例では、それは前にあった状態にファイルを返し、最初のコミット(これは、ファイルが新しい場合、削除「RM」アクションでもよい)、その後、 再コミットし、ファイルが移動します 。 あなたはいつもにgitのを削除する代わりに提出し、追加、ので、この例では、ファイルが新しい場合、それはRMを削除されることがあります(最初の投稿前の状態に戻りを提出します「アクション)は、そのファイルが継続する再送信してください。
いくつかの以前の状態にファイルを戻すために : あなたは、ファイルを以前の状態に戻したいです。
git checkout <commit_id> <path_to_file>
または時の状態に戻すリモートHEAD: またはリモートHEADの状態に戻します:
git checkout origin/master <path_to_file>
その後、コミットとあなたが見つける必要がある修正ファイルがリストから消えた(とないあなたのディスクから削除!)している し、その後コミット変更、ファイルがリストから消え見つける必要があります(ディスクから削除されません!)
ハウス#5
私はここで他の回答は、間違っていると思うそれらに行われた変更をキャンセルせず、コミット。これは戻って、以前からステージング領域に誤ってコミットしたファイルを移動する問題であるので、 私はこれがあるので、ここで他の回答は、間違っていると思います質問を提出するために、過去に誤って提出された文書には、プライマリのステージング領域に移動し、それらに加えられた変更をキャンセルしません。 :Paritoshシンは次のようにこれを行うことができる提案 Paritoshシンが示唆したように、これが完了することができるという。
git reset --soft HEAD^
または いずれか
git reset --soft HEAD~1
次にために、不要なファイルをリセットするからそれらを残してコミット: 彼らは提出から取り外すことができるように、不要なファイルをリセットします。
git reset HEAD path/to/unwanted_file
再びコミット、あなたも再することができます今 、同じメッセージコミット-use: 今再び提出し、あなたも同じコミットメッセージを再利用することができます。
git commit -c ORIG_HEAD
ハウス#6
あなたのコミットを保持したい場合は(多分あなたは既にコミットメッセージを、それを失いたくない詳細な書き込みをいくつかの時間を費やした)、そしてあなただけではないリポジトリから完全にコミット、しかしからファイルを削除する: あなたの場合あなたの投稿を維持したい(おそらくあなたは、詳細な提出情報を書き込むいくつかの時間を費やしてきたし、それを失いたくない)、あなただけの完全リポジトリから削除するのではなく、提出からファイルを削除します:
git checkout origin/<remote-branch> <filename>
git commit --amend