ブランチを変更せずに別のGitブランチでファイルを表示する


620

そのブランチをチェックアウトせずにgitブランチでファイルを開くことは可能ですか?どうやって?

基本的に、私は常にブランチを切り替えずにgithub pagesブランチでファイルを開くことができるようにしたいと考えています。変更したくありません。表示したいだけです。


15
すべての答えは、あなたがして、ファイルのフルパスを指定する必要が事実逃したgit showstackoverflow.com/questions/610208/...stackoverflow.com/questions/2364147/...
VonC

15
最近では、git show a1b35:./file.txt相対パスを使用することができます。
スティーブベネット

2
@VonC-ブランチ対応タブの完成に感謝します:)
ルーク

より興味深いのは、違いを示すことができたgit diff <other_branch> <path>
SławomirLenart

上記の「a1b35」を含む相対ファイルの例、つまりブランチ名です。もちろん、そこに独自のブランチ名を入力してください。
loneRanger

回答:


876

これはうまくいくはずです:

git show branch:file

ここで、branchは任意の参照(branch、tag、HEADなど)で、fileファイルの完全パスです。エクスポートするには、

git show branch:file > exported_file

また、関連するいくつかの質問に対するVonCの回答もご覧ください。

更新2015-01-19:

現在では、で相対パスを使用できますgit show a1b35:./file.txt


22
そして、あなたは、同様のvimで開いているファイルを開くことができますgit show branch:file | vim -(お知らせ「|」vimのコマンドの後、パイプ、および末尾のダッシュ:vim -
グレッグBURGHARDT

3
私のためにどのような作品@GregBurghardtはに似たものであるvim -c "set syntax=html" -
raphaëλ

2
私は正直に、この回答に複数回賛成できるといいのですが。
Vincent Fourmond 2017年

2
これはローカルブランチのみを表示し、サーバー上のすべてのブランチを表示するわけではありません
William Entriken 2017

3
@FullDecent、origin/my_remote_branchこれで問題なく使用できました。または、実際のサーバーのバージョンを意味しますか?それが必要な場合は、git fetch最初に行う必要があります。
rsmith54

53
git show somebranch:path/to/your/file

複数のファイルを作成して、それらを連結することもできます。

git show branchA~10:fileA branchB^^:fileB

ファイルへのフルパスを指定する必要はありません。相対パスを使用できます。例:

git show branchA~10:../src/hello.c

ローカルディレクトリのファイルを取得したい場合(1つのファイルだけを元に戻します)、チェックアウトできます。

git checkout somebranch^^^ -- path/to/file

38

ファイルを調べるための、初心者にやさしいシンプルな方法: git gui browser <branch>これにより、任意のファイルのコンテンツを探索できます。

の[ファイル]メニューにもありますgit gui。他のほとんどの-より高度な-GUIラッパー(Qgit、Egitなど)は、ファイルのブラウジング/オープンも提供します。


このコマンドを実行すると、「git: 'gui'はgitコマンドではありません。「git --help」を参照してください。私は初心者です。どうなっているのですか?
Scott Biggs

2
それは実際に動作します(驚いたことに)、git-scm.com
docs /

この回答はとても役に立ちました!ありがとう。Windowsでgit bashを使用していることに言及する必要があります。
合併:

レンジャーをGit GUIとして使用することは可能ですか?
関与者

1
@ScottBiggsあなたは初心者ではなく、非標準の設定を使用しています。
Ashnur

20

Emacsを使用している場合C-x v ~は、入力して、現在編集しているファイルの別のリビジョン(タグ、ブランチ、ハッシュすべての作業)を表示できます。


Vimでこれを取得する方法はありますか?(私はプラグインを利用できます。)
NHDaly

4

以下を~/.gitconfigファイルに追加します

[alias]
  cat = "!git show \"$1:$2\" #"

そして、これを試してください

git cat BRANCHNAME FILEPATH

個人的には、コロンなしの個別のパラメーターを好みます。どうして?この選択は、checkoutコマンドのパラメーターを反映しています。コマンドのパラメーターは頻繁に使用する傾向があるため、コマンドの奇妙なコロンで区切られたパラメーターよりも覚えやすくなっていますshow


それはとても思い出深いものです、ありがとう。
旅行者
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.