git を使用したプロジェクトがあり、subversion と同じように myproject/javascript のような特定のディレクトリを複製またはプルしたいだけです。
いくつかの変更を行い、コミットして再度プッシュバックします。
それが可能だ?
10 に答える
- レポコピーの先頭に cd します
git fetch
git checkout HEAD path/to/your/dir/or/file
(3) の" " は、" "
path/...
を含むリポジトリ ルートのすぐ下のディレクトリから始まります。.../file
「HEAD」の代わりに、特定のコミットのハッシュ コードを使用することができ、そのコミットに固有のリビジョン (ファイル) またはリビジョン (ディレクトリ) を取得することに注意してください。
ディレクトリに入らずにディレクトリの最新の変更を取得したい場合は、次のようにします。
$ git -C <Path to directory> pull
たぶん、このコマンドが役立つかもしれません:
git archive --remote=MyRemoteGitRepo --format=tar BranchName_or_commit path/to/your/dir/or/file > files.tar
「ほら」
不可能です。すべてのリポジトリをプルするか、何もプルしない必要があります。
私が行ったように、理論的なファイル パスと例に苦労しているすべての人のために、ここに実際の例を示します。Microsoft は git ハブでドキュメントと例を提供していますが、残念ながら、このリポジトリには大量のトピックのすべての例ファイルが集められています。
https://github.com/microsoftarchive/msdn-code-gallery-community-s-z
パス内の Microsoft Dynamics js ファイルにのみ興味がありました
msdn-code-gallery-community-s-z/Sdk.Soap.js/
だから私は次のことをしました
を作成する
msdn-code-gallery-community-s-zSdkSoapjs\.git\info\sparse-checkout
ディスク上のリポジトリ フォルダー内のファイル
git sparse-checkout init
Windowsでcmdを使用してそのディレクトリに
のファイル内容
msdn-code-gallery-community-s-zSdkSoapjs\.git\info\sparse-checkout
は
Sdk.Soap.js/*
最後に
git pull origin master
場合によっては、差分を確認するという面倒な作業をせずに、ファイルの以前のコピーを確認したいだけです。
このような場合、リポジトリのクローンを作成し、関心のある特定のコミットをチェックアウトして、そのクローンされたリポジトリのサブディレクトリを確認するのと同じくらい簡単です。すべてがローカルであるため、完了したらこのクローンを削除できます。