Magitでファイルの特定のリビジョンを開くにはどうすればよいですか?


43

現在のブランチを変更せずにMagitでEmacsのファイルの特定のリビジョンを開くことは可能ですか?

変更された機能が別のファイルの機能に置き換えられたリビジョンのローカル変更をリベースしました。変更を並べて比較できるように、変更の古いリビジョンを別のバッファーで開きたいと思います。

私の現在のハッキングソリューションは、実行git show <branch pre-rebase>:file > old_fileしてからold_fileEmacsで開くことです。


1
github.com/pidu/git-timemachineは、各バージョン間で一時的にファイルを表示できます。
-kuanyui

1
@kuanyuiを使用してgit-timemachineいますが、コードがリベースされているので、古いコードは現在のブランチの歴史の一部ではないため、機能するとは思いませんか?
デビッドホルム

回答:


56

を使用して、特定のリビジョンのファイルを表示できますM-x magit-find-file RET <filename> RET

または、最初にコミット用の差分を表示し、差分RET内のファイルに移動してからRETもう一度押すと、コミットの差分を表示できます。


8
これは私には有効です。ここで私がやっていることです:ファイルの現在のバージョンからM-x magit-log-buffer-file、行を目的のコミットに移動し、次にM-x magit-find-file。その場合、デフォルト値はそのコミットになります。これはログバッファから取得されないため、ファイルへのパスを指定する必要があります。
リアム

@ tarsius、magit-find-fileに似ていますが、現在のバッファーのファイルのリビジョンを選択するだけです。すでに存在しますか?
エルゴシス

はい、magit-find-fileファイル訪問バッファから自分自身を使用RETし、2番目のプロンプトで入力するだけです(適切なファイルがデフォルトとして提供されます)。
タシウス

Magitに関する情報とすべての作業に感謝します。その厄介な余分なキーストロークをスキップする機能をハッキングすることはそれほど難しくありませんでしたので、次のかゆみが起こるまで幸せです。
エルゴシス

29

Magitなしで、プレーンなVC(Emacsに組み込まれている)で行うことができます。入力C-x v ~し、必要なバージョンを入力します。通常の~1etcサフィックスと同様に、タグとSHA1ハッシュを理解します。


これはmagitの質問に対する答えではありません。Rubyの質問に対するCの回答を投稿しますか?
ブライアンアッシュ

4
@BryanAshはい、Cでの解決が非常に簡単な場合。
マーカスシュトラウス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.