1

1つのブランチのみを介してファイルがコミットされるGitリポジトリがあります。私はこれらのコマンドを使用します:

git init
git add -A
git commit -m "msg"

ファイルの特定のリビジョンを取得したい。このリビジョンは番号で指定されます。現在私はこれを使用しています:

リビジョンの総数が1の場合:git show HEAD:path

リビジョン番号が1より大きい場合、次のようになります。git show HEAD~n:path

ただし、コードを実行すると、次のようなエラーが発生する場合があります。無効なオブジェクト名:HEADn(nは数値)。サブバージョンでは、svn catコマンドを使用しました。

アップデート

私はリポジトリを絶えず更新しているので、可能であればリビジョンでリポジトリをチェックアウトしたくありません。

4

2 に答える 2

1

と同等の他のコマンドsvn cat

git cat-file blob ref:path/to/file
git show ref:path/to/some/file.cs.

refを(SHA1、タグ、ブランチ、...、または使用している場合は)に置き換えるためのリビジョンの指定を参照してください。<rev>~<n>, e.g. master~3

于 2013-02-10T07:29:38.390 に答える
0

gitについて覚えておくべき主なことは、すべてがコミットに基づいているということです。コミットハッシュはそれを識別し、タグ、ブランチはコミットを識別するための単なる追加のメカニズムですが、ブランチの場合は静的ではなく、HEADとともに移動します。

したがって、特定のリビジョンでファイルをチェックアウトするには、そのリビジョンがどのコミットであったかを見つける必要があります。これを使用して特定のファイルの履歴を確認できます...

git log --no-merges --oneline -- <path>

または、Git Extensionsまたは他のGUIを使用している場合は、視覚的に表示するファイル履歴コマンドがあります。

コミットハッシュが何であるかがわかったら、その時点で次を使用してファイルをチェックアウトできます。

git checkout <hash>:<path>
于 2013-02-10T00:50:32.690 に答える