2016-10-25 9 views
0

特定のファイル名ですべてのファイルをチェックアウトします。 Asset/stickers/*/icon.pngここで*は異なるディレクトリの束です(つまり、ファイルの1つがAssets/stickers/a/icon.pngです)。別のものはAssets/stickers/b/iconです。 .png)。古いコミットからその名前のすべてのファイルを取り出すコマンドを書くにはどうすればよいですか?私は、次のコマンドを試してみましたが、エラーを取得できませんでしたが、ファイルがチェックアウトされませんでした。特定のファイル名で前のコミットからすべてのファイルをチェックアウト

git checkout aa47381b99a38c0cabef28bb54f7a7f119b36797 Assets/stickers/*/icon.png 

答えて

1

を試してみて、私はthe manualに言及私のレポで次のコマンドを試してみましたがありません1つは働いた:

git checkout <commit> dir/*/foo.txt 
git checkout <commit> dir/**/foo.txt 
git checkout <commit> ':(glob)dir/*/foo.txt' 
git checkout <commit> ':(glob)dir/**/foo.txt' 
git checkout <commit> ':(glob)**/foo.txt' 

多分pathspecのバグ。 は回避策として、これはおそらく動作します:

git ls-tree --name-only -r aa47381b99a38c0cabef28bb54f7a7f119b36797 Assets/stickers/ | grep icon.png | xargs git checkout aa47381b99a38c0cabef28bb54f7a7f119b36797 
0

この

git reset --mixed 4702e729f24fc71816835bf9b818ed43f5f5213f Assets/stickers/*/icon.png 
+0

読むhttps://git-scm.com/docs/git-reset – kaitoy

+0

これはハードリセット –

+0

@AtulAgrawl 'gitのは、[リセットしないソフトリセットがある@kaitoy ] 'または' git reset [--soft | - ミックス| --hard] 'は正しい形式です。あなたの 'git reset [--soft | - ミックス| - ハード] 'はありません。そして、が 'git reset'を指定しても何もチェックアウトしない場合は、インデックスのみが更新されます。 – kaitoy

関連する問題