ブランチAのいくつかのファイルを変更した後、これらの変更されたファイルを追加するのにgit add
を使用します。 しかし、私はgit commit
を使って現在のブランチに変更をコミットするのを忘れていました。次に、git checkout B
を使って別のブランチに切り替えました。 私がブランチAに再び切り替わったとき、私は変更されたものはここで見つけることができませんでした。 変更されたファイルを元に戻す方法はありますか?gitを追加してgitをコミットしなくてもgitのチェックアウト後にdiffを返すにはどうすればいいですか?
答えて
コミットされていない変更があっても、ブランチを切り替えることができたら、変更したブランチにその変更が反映されます。だから、あなたがそれらの2つのブランチの間の差分をチェックするなら、それは何の変化も表示しません。他のベースブランチとdiffをとるようにしてください。希望
git add
は通常オブジェクトをオブジェクトデータベースに書き込みます。索引またはコミットから到達できなくなった場合、それはぶら下がったブロブになります。
$ git fsck --no-reflogs | grep 'dangling blob'
dangling blob 5cd8df407a53f3cf1a00d7df9b92973fc7124649
dangling blob a15ac56b6ac98b0b26c4d30bd299cf5cea817b83
dangling blob a052e2e82624bfa14d7004a30e971cfc543d3759
dangling blob b3cae5cf028ad4728b344193a7c6fe4e76e36af3
dangling blob bb428320e3f8496ee844dfe1826e5f705e47b0c8
dangling blob aa9bc6e7a3078a91a895f9ade9ecb0d3f46783a0
dangling blob 0094f013e9120ac2168248245ee492f1c551754d
dangling blob 896c4a4752fab07a7be22cc068c50d4b8021c8a9
dangling blob f6fc725dc3f01cedee7933651e202fa1e46101a4
$ git cat-file -p 5cd8df407a53f3cf1a00d7df9b92973fc7124649
...
紛失したものを1つ1つ見つけて印刷することができます。 (--lost-found
オプションも参照してください)
私はこれを試しましたが、git commitによってコミットされた変更だけが見つかりました。 –
@张张彪その後、オブジェクトデータベースに何も書き込まない 'git add -N'を使用したか、インデックスにアタッチされるか、どこかでコミットされます。 'git add'で書かれたオブジェクトがコミットの前に失われていることは間違いありません。 – ephemient
私はそれらを隠し場所で見つけました。 gitの後に大部分のファイルを追加すると、残りのファイルを隠すことを期待してgit stashを使います。しかし、git addを使って追加したかどうかにかかわらず、変更されたファイルはすべて隠しファイルに置かれているようです。
「git stash」を使っていないとコメントしています。 'git stash'のやり方は、少なくとも2つのコミット、現在のインデックスの内容と現在の作業ツリーのコメントを書くことです。追加のファイルを保持するオプションの第3のコミットがあります。これは、無視されない未追跡のファイル、または無視されたファイルを含む未追跡のファイルのいずれかです。これらの2つまたは3つのコミットは行われますが、現在のコミットにぶら下がっているコミットの一種のバッグとして、* no *ブランチに格納されます。 – torek
- 1. Git:リモートでチェックアウトされているコミットを確認します。
- 2. 最後のgitの追加/コミットを元に戻すにはどうすればよいですか?
- 3. "git diff"の "diff - git"出力は何を指していますか?
- 4. Gitコミットとそれに続くチェックアウト
- 5. Git - ブランチをチェックアウトした後にコミットを回復する
- 6. gitはどのようにサブモジュールでチェックアウトするコミットを選択しますか?
- 7. GitコミットはGitリポジトリの最後のコミットをオーバーライドしているようですか?
- 8. コミット順によるGitチェックアウト
- 9. gitコミット後に保存しない:Wq
- 10. gitの最後のコミットにファイルを追加するには?
- 11. gitの特定のユーザーからコミットをチェックアウトするにはどうすればよいですか?
- 12. git pullのすべてのコミット後にローカルコミットを移動するにはどうすればよいですか?
- 13. git statusとgit diffが失敗した後で空になる
- 14. git diffはあいまいな引数エラーを返します
- 15. Git Bashでテキストファイルを作成してテキストを追加するにはどうすればいいですか?
- 16. PDFに別のGit diffツールを追加するにはどうしたらいいですか?
- 17. git diffを使用して、特定のキーワードがなくても変更を無視するにはどうすればいいですか?
- 18. Git Push APIを使用してGit Pushを制限するにはどうすればよいですか?
- 19. gitignoreもgitに追加してコミットする必要がありますか?
- 20. 常にページャをgit diffに使用してください
- 21. コミット後にコミット後のスクリプト(フック)が起動しないGit
- 22. git rmとgit checkoutの後でもGitはファイルを追跡していません
- 23. git-svnを使用してsvnトランクをgitブランチとして追加するにはどうすればよいですか?
- 24. はなぜ学習運動は、Gitは-amはgitのは明らかにこれを追加していてもリポジトリに私の新しい.gitignoreを追加するには不十分であるコミットと警告していますか?
- 25. コミット後にGitプリコミットが実行されていますか?
- 26. gitに変更されていないファイルを追加する
- 27. Gitブランチを新しいコミットにする
- 28. gitでコミットを確認するにはどうしたらいいですか?
- 29. gitでコミットをバックポートするにはどうしたらいいですか?
- 30. gitに追加された新しいファイルを無視するにはどうすればよいですか?
Bをチェックアウトする前に 'git stash'を使いましたか? – 17slim
変更されていないことは確かですか?修正されたファイルがステージングされていない可能性がありますか? – destoryer
いいえ私はBをチェックアウトする前にgit stashを使っていませんでした。ブランチAにいるときにgit statusを使うと、ステージングされていない変更で何も見ませんでした。 –