2つのリビジョン間で変更されたファイルのリストを取得するだけです。これは簡単です。
git diff -–name-only commit1 commit2 > /path/to/my/file
しかし、リストされているすべてのファイルを別の場所にコピーしたい場合、何を書けばよいですか?そして、私はコピーされたファイルのために完全に同一のディレクトリ構造が必要です。
たとえば、私はファイルを変更して追加しました:
/protected/texts/file1.txt
/protected/scripts/index.php
/public/pics/pic1.png
/home/changes/
変更および追加されたすべてのファイルに入れたい:
/home/changes/protected/texts/file1.txt
/home/changes/protected/scripts/index.php
/home/changes/public/pics/pic1.png
git format-patch
コミット範囲に対してこれを行うことができます。
git diff commit1 commit2 > my.patch
そしてcd other/path; patch -p1 < my.patch
。ファイルの完全なコピーを使用する必要があるのはなぜですか?パッチが適用されない可能性があり、他のディレクトリが実際にはcommit1
状態にないためと考えられる場合は、状態からすべてを実際にコピーする必要がありcommit2
ます...