0

私はこのような疑問がたくさんあることを知っていますが、解決策はありませんでした。ここには何が起こったのですか:gitでコミットの変更を復元するには?

私のアプリに新しい機能を追加しようとしたので、この機能を実装するために新しいブランチを作成しました。
私はそれをマスターにマージし、私が新しい機能をテストしたブランチを削除し、変更をリポジトリ(bitbucket btw)にプッシュしました。
コードは正常でした。

次に、私は他の機能を追加する必要があった。
私はもう一度新しいブランチを作成しましたが、今度はmasterのこの新しい機能をテストし、もう1つのブランチに "正しい"コードを付けさせてください。

新しい機能が動作しませんでしたので、私は他のブランチに行き、それをマスターにマージして、私が行った変更を削除しました、それは私にマージ競合を与えました、私はすべてを試みましたが、それをすることはできません。

私はmasterに戻ってスイッチし、正しいコードでブランチを削除しました。
私はマスターで間違ったコードを使っていました。
私はまだ変更をプッシュしていませんでしたが、コミットしただけなので、これを修正する方法を探してみました。 git checkout NUMBER OF THE COMMIT

私が最後にチェックコミット押し、右のコードを持っていた:

は、私は、このコマンドを実行しました。

私のプロジェクトは正しいコードに変更されました。私はすべてが大丈夫だと思っていました。変更を復元したと思いました。

私はgit statusを実行し、それが出力された:

HEAD detached at f49fb28 
Changes not staged for commit: 
(use "git add <file>..." to update what will be committed) 
(use "git checkout -- <file>..." to discard changes in working directory) 

modified: .DS_Store 
modified: Homework.xcworkspace/xcuserdata/Henrique.xcuserdatad/UserInterfaceState.xcuserstate 

no changes added to commit (use "git add" and/or "git commit -a") 

私はその後git commit -m "some message"とともにgit add -Aを実行し、コードが固定になるだろうと思っレポにそれを押しました。それは今、私のレポとプロジェクトは、同じコード、間違ったコードを持っています。正しい機能で作成したコミットをチェックアウトすることは可能でしょうか?間違ったコードではなく正しいコードを復元することが可能ですか?そうでなければ、私の唯一の救いはすべてをやり直すことです。

お願いします。

EDIT:私はgit statusを実行し、OUTPUTがNOW異なっていた:

HEAD detached from f49fb28 
Changes not staged for commit: 
(use "git add <file>..." to update what will be committed) 
(use "git checkout -- <file>..." to discard changes in working directory) 

modified: Homework.xcworkspace/xcuserdata/Henrique.xcuserdatad/UserInterfaceState.xcuserstate 

no changes added to commit (use "git add" and/or "git commit -a") 

答えて

0

、それは私がまず第一

RIGHT機能を使って作られたコミットチェックアウトすることは可能ですコメントに添付された完全な答えを読んでください。

今すぐできることは、単にgit reflogを使用して、目的のコミットをチェックアウトすることです。

enter image description here

:ここ

はREFLOGは次のようになります方法です

関連する問題