0

そこで、WindowsバージョンのGitをローカルにインストールすることにしました(Unix Web開発だけでなく.NET開発も行っているので、.NETプロジェクト用にUNIXでGitを実行するのは遠慮がちです)。

Web開発作業では、FTPを使用して自分でデプロイしますが、質問したいと思います。Gitに、特定のブランチ内のすべてのファイルなど、ファイルのサブセット用のディレクトリ構造を構築させる便利な方法はありますか?

例:このWebサーバーのファイル構造があるとします

/public_html/index.php
/public_html/config.php
/public_html/style/style.css
/public_html/style/typography.css

ローカルでは、index.phpとstyle.cssのみを変更します

これらのファイルを「チェックアウト」して、完全なファイルパスを構築する方法があれば便利です。Visual Source Safeでは、実際にはすべてのファイルがVSSデータベースに保存されます。したがって、作業コピーを削除し、いくつかのファイルをチェックアウトすると、適切なディレクトリ構造で作業ディレクトリに書き込まれます。GITにそのようなものはありますか?もしそうなら、私は変更されたファイルをエクスポートし、ルートフォルダ(/ public_html)をサーバーにアップロードすることができます

4

2 に答える 2

1

チェックアウトgit diff-tree。これを使用して、2つのコミットのツリーの状態を比較し、どのファイルが変更されたかを判別できます。例えば:

git diff-tree --name-status -r `git merge-base master mybranch` mybranch

変更されたファイルの名前とステータスが表示されます。削除されたファイルなどが引き続き正しく処理されることが確実な場合は、--name-only代わりにを使用することもできます。--name-status

(もちろん、 ``によるコマンド置換はUNIXシェル構造です。Windowsでは、FOR / Fのようなものを使用する必要があるかもしれません。)

次に、このコマンドでリストされたファイルをに渡すことができますgit checkout。別のディレクトリにファイルをチェックアウトする場合は、次の--work-treeパラメータを使用できます。

git --work-tree=path/to/build checkout mybranch -- file file file...
于 2012-09-11T23:51:54.580 に答える
0

次の方法で、インデックスの最新のコピーを復元できますfile

git checkout HEAD -- <file>

したがって、作業ディレクトリ内のファイルを削除した場合は、そのコマンドを使用してファイルを「復元」できます。

于 2012-09-11T16:05:07.563 に答える