質問: ### 前提・実現したいこと gitにて,リモートリポジトリ一部のディレクトリのみを管理(リモートからローカルにもってきて編集,その後プッシュ)したいです. これまでSubversionで管理してきたため,gitの扱いがよく分かりません. Subversionであれば,あるリポジトリ内の一部のディレクトリをチェックアウトしてきて編集し, その後コミットという流れでしたが,同じことをgitで行う場合には どうすればいいのかわかりません. ------ここから理由について追記した箇所------- 以下はどうしてこのようにしたいか,その理由です. わたくしのリポジトリの考えがおかしいのかもしれませんが,ハード(回路設計)とソフト(プログラム)を1つにまとめてプロジェクトを作り,それを1つのリポジトリにしています.つまりこんな感じです. あるプロジェクト.git ├ハードウェア │├回路1のファイル群のディレクトリ │└回路2のファイル群のディレクトリ └ソフトウェア ├ソフトウェア1のファイル群のディレクトリ └ソフトウェア2のファイル群のディレクトリ こんな感じになっています. このまますべてcloneしてきて,そのローカルリポジトリを編集/Commit/Pushできればいいのですが, ソフトの中には,「特定のディレクトリにファイル群のディレクトリを置かなければ動かない」 というようなものもあります. 特定のディレクトリに置かなければならない理由は,相対的にライブラリ群が置かれており 特定のディレクトリ以外だとビルドできないようになっているからです. これまではSubversionを使っていましたので,必要なディレクトリだけをチェックアウトしてきて, 特定のディレクトリに置き,編集/Commitという流れでした. しかし,gitに切り替えてみたところ,それと同じようなことが,ぱっとできないことに気が付き, 今回質問をしている次第です. 上記の場合,ソフトウェアのファイル群を1つのリポジトリとしておけば問題がないことは 分かりますが,マイコンなどの場合,ハードとソフトが密接なため, 1つのリポジトリにしておいた方がいろいろと便利なわけです. このような場合,皆さんはどのように解決されているのか 知見をいただきたく存じます. ------ここまで理由について追記した箇所------- ### 発生している問題・エラーメッセージ エラーは発生していません. ### 該当のソースコード ソースはありません. ### 試したこと 一部のディレクトリのみチェックアウトする時,sparsecheckoutを有効にし, チェックアウトすると同じようなことが実現できそうであることは分かりましたが, これだとリポジトリにあるディレクトリ構造を分かっている場合にのみであり, できればTortoiseGitのリポジトリブラウザでリポジトリ内のディレクトリを見ながら, 一部のディレクトリのみクローンしたいです. このような運用はそもそもgitでは行わないものなのでしょうか. ### 補足情報(FW/ツールのバージョンなど) フロントエンドはWindows 10条で動作するTortoiseGitです.
回答: 特定のディレクトリだけcloneというのは(おそらく)できないので、 cloneは全体取ってきて、その中の一フォルダだけを対象に修正/commit/push すればいいんじゃないでしょうか