2017-03-06 15 views
0

私はローカルブランチを持っています。私は新しいファイルを書き、他のファイルを変更して間違って1つのファイルを削除します。コミット。古いローカルコミットで削除されたファイルを復元します。

もう一度コードを書きます(新規/変更ファイル)。コミット。

プッシュしないでください。

私は最初のコミットでファイルを削除したいです。
削除されたファイルを復元するために2番目のコミットを修正したくありません。

誰かが私を助けることができますか?私には考えがない。

マイソリューション:あなたは再びそれを再追加することなく、コミット一定でファイルの削除を元に戻したい:

git rebase -i HEAD~2  
[Change for first commit 'pick' to 'edit'] 
git reset HEAD^  
[Revert deleted file] 
[Add other files and commit] 
git rebase --continue 
+0

ことはあなたを理解するかどうかを確認できます。 – CodeWizard

+0

はい、3回目のコミットを作成したり、2回目のコミットを修正したりしたくありません –

答えて

1
git checkout <id-of-commit1>~1 path/to/the/deleted/file 
git commit --fixup <id-of-commit1> 
git rebase -i --autosquash 
[it opens editor, check that the rebase plan is correct, exit the editor to proceed] 
+0

"git rebase -i --autosquash "ではなく、 "git rebase -i --autosquash" ? –

+0

@YShinkarevそれは依存しています。通常、単純なブランチング/クローニングを使用すると、デフォルトで正常に動作するので、rebaseするためにさらに引数を指定する必要はありません。しかし、あなたがより正確になりたい、あるいは珍しいことができればあなたはできます。 – kan

関連する問題