私のシステムの設定ファイルのバージョンを制御するためにgitを使用しています。私のファイルシステムのルートにgit rootがあり/
、それを制御し/etc
ます/root
。
入って/root
実行するとgit log .zshrc
コミット履歴が表示されます。.zshrc
特定のコミットの内容を表示したいです。
# git show a100e3515779a900509b52230d449a6446fa110b:.zshrc
fatal: Path 'root/.zshrc' exists, but not '.zshrc'.
Did you mean 'a100e3515779a900509b52230d449a6446fa110b:root/.zshrc' aka
'a100e3515779a900509b52230d449a6446fa110b:./.zshrc'?
# git show a100e3515779a900509b52230d449a6446fa110b:/root/.zshrc
fatal: Path '/root/.zshrc' exists on disk, but not in
# git show a100e3515779a900509b52230d449a6446fa110b:root/.zshrc
# git show a100e3515779a900509b52230d449a6446fa110b:./.zshrc
最後の2つのコマンドのみが有効です。なぜ.zshrc
動作しないのです/root/.zshrc
か?たとえば、最も不快な表記法を使用する理由は何ですか./.zshrc
?
Gitが理解できるように変更できる設定オプションはありますか.zshrc
?/root/.zshrc
答え1
表記では、<rev>:<path>
パスは./
またはで始まらない限り、現在のディレクトリではないツリーオブジェクト自体に相対的です../
。どちらの場合も、絶対…:/…
パス()はサポートされず、相対パスのみがサポートされます。
git show a100e3515779a900509b52230d449a6446fa110b:.zshrc
これは、「a100e3515779a900509b52230d449a6446fa110bオブジェクトを見つけて、そのオブジェクト内のファイルを表示してください.zshrc
」を意味します。 a100e3515779a900509b52230d449a6446fa110bを一種のアーカイブとして考えてください。これは現在のディレクトリとは無関係に存在し、現在のディレクトリの概念はありません。
私が知っている限り、この場合を理解するために設定オプションを変更することはできませんgit show
。.zshrc
./.zshrc
バラよりgitrevisions
出荷書類ビーチもっと学ぶ。