[解決済み】git-checkout 古いリビジョンのファイルを新しい名前でチェックアウトする
質問
私は、ファイル "
main.cpp
"をエディターで開いてください。
前のリビジョンの"を見たいのですが。
main.cpp
"もエディタに表示されます。
今のやり方はこんな感じです。
close "main.cpp" in the editor
prompt> mv main.cpp tmp
prompt> git checkout HEAD^ main.cpp
prompt> mv main.cpp old_main.cpp
prompt> mv tmp main.cpp
prompt>
open "main.cpp" and "old_main.cpp" in the editor
エディターで "main.cpp" を閉じる必要がないように、簡略化できないでしょうか?
私が希望しているのは、以下のようなバリエーションです。
git-checkout
ということができます。
UPDATE: Mac OSx 10.5.7でgitを使用しています。
prompt> git --version
git version 1.6.0.4
prompt>
UPDATE2:Jakub Narębskiの回答は。
prompt> git show HEAD^:dir1/dir2/dir3/main.cpp > old_main.cpp
prompt>
UPDATE3です。カルミの回答、具体的な修正点について。
prompt> git show 4c274dd91dc:higgs/Higgs.xcodeproj/project.pbxproj > old_project.pbxproj
prompt>
解決方法は?
を使用することができます。
git show
を使用します。
git show HEAD^:main.cpp > old_main.cpp
(コロン [ ] があることに注意してください。
:
の間にある文字
HEAD^
と
main.cpp
.) は
<revision>:<path>
の構文は
git rev-parse
のページ、quot;リビジョンの指定" セクションの最後から2番目のポイントです。
<rev>:<path>
は、例えば
HEAD:README
,
:README
,
master:./README
サフィックス
:
に続けてパスを指定すると、指定したパスにあるブロブまたはツリーをツリー状に指定します。
オブジェクトの名前をコロンの前の部分で指定します。
:path
(コロンの前に空の部分がある場合)。
は、次に説明する構文の特殊なケースです:インデックスに記録されているコンテンツが
を指定します。で始まるパスは
./
または
../
は、現在の作業ディレクトリからの相対パスです。
与えられたパスは、作業ツリーのルートディレクトリからの相対パスに変換されます。
これは、同じコミットまたはツリーからblobまたはツリーを指定する場合に最も便利です。
は作業ツリーと同じツリー構造である。
なお
<path>
ここで
FULL
への相対パスです。
トップディレクトリ
を含むディレクトリを指定します。
.git/
ディレクトリを作成します。(正確には、" に。
<revision>
を使用することができます。
<tree-ish>
つまり木を表現するもの)。
カレントディレクトリからの相対パスを使いたい場合は
./<path>
構文(または
../path
はカレントディレクトリから上へ移動します)。
2015-01-15を編集。 相対パス構文に関する情報を追加
ほとんどの場合、低レベル(配管)でも同じ出力を得ることができます。
git cat-file
コマンドを使用します。
git cat-file blob HEAD^:main.cpp > old_main.cpp
関連
-
[解決済み] Git が追跡したファイルを .gitignore に登録したまま「忘れる」ようにするにはどうしたらいいですか?
-
[解決済み] ファイルをリセットしたり、特定のリビジョンに戻したりするにはどうすればよいですか?
-
[解決済み] 新しいローカルブランチをリモートの Git リポジトリにプッシュし、それを追跡するにはどうすればよいのでしょうか?
-
[解決済み] Gitで変更された複数のファイルのうち、1つのファイルだけを隠す?
-
[解決済み] Git で現在のブランチ名を取得するには?
-
[解決済み] Git でファイルの一部分のみをコミットする
-
[解決済み] Git リポジトリで削除されたファイルを検索して復元する方法
-
[解決済み] Git で最新のコミットを新しいブランチに移動する
-
[解決済み】Gitバージョン管理でファイルの変更履歴を見る
-
[解決済み】Gitで、既存の未コミットの作業を新しいブランチに移動する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Gitマージで「すでに最新」と報告されるが、違いはある
-
[解決済み】GitHub: クローンには成功したが、チェックアウトに失敗した
-
[解決済み】git push >> fatal: 設定されたプッシュ先がありません。
-
Gitのプッシュでエラーが発生! [リモート拒否] master -> master (pre-receive hook declined) error: failed to push s...
-
[解決済み] 短いGitバージョンのハッシュを取得する
-
[解決済み] VSTS Git Fetch Failed with exit code: 128
-
[解決済み] git ls-remote と git ls-remote origin の違い。
-
[解決済み] Git エラー : 'upstream' は git リポジトリでないようです。
-
[解決済み] git stash から単一のファイル(またはファイルへの変更点)を抽出するにはどうすればよいですか?
-
[解決済み】別のブランチから1つのファイルだけを取得する方法は?