51

別の質問に対するChrisの回答を使用して、Gitリポジトリにスナップショット履歴を追加できます。ファイルの1つは私の履歴の一部ではなく、スナップショットにのみ含まれているため、最初の元のコミットにもこのファイルの削除が含まれています。どうすれば元に戻すことができますか?

最初は、これはgitの履歴から機密ファイルを削除する方法の反対だと思いましたが、実際には、ファイルを履歴に挿入したくはなく、削除を履歴から削除するだけです。

4

2 に答える 2

71
git checkout <commit> <filename>
于 2010-06-30T14:53:01.680 に答える
62

わかった:

git tag originalHead # just in case
git rebase -i <id of the parent of the commit that deleted the file>
# change pick to edit for that commit
git checkout <id of the previous commit> <filename> # thanks for reminding, kubi
git commit --amend
git rebase --continue
git tag -d originalHead

残念ながら編集すると、すべてのタグが古いタイムラインのままになります。こちらをご覧ください

于 2010-06-30T15:03:53.997 に答える