远程存储库中有成千上万个文件,但我只能处理几个文件。如何从本地存储库中删除所有不必要的文件(从git和文件夹中删除),而不从远程存储库中删除?感谢您的帮助!
回购协议的结构
A/
AA/
aa1.code
aa2.code
...
B/
bb1.code
...
root1.code
root2.code
...
...例如,我仅需要文件root1.code和A / AA / aa1.code
答案 0 :(得分:2)
快速的答案是您不能这样做。存储库就是存储库。如果您在本地删除文件,则在您进行更改时,这些文件将在远程服务器上删除。
可能有多种方法可以解决此问题,但不建议这样做。例如,您可以拥有自己的本地分支,并在该分支中使用某种IDE解决方案,其项目结构仅显示所需的文件。在诸如Visual Studio之类的系统中,这是可能的,但是当然,如果没有依赖项,您将无法对其进行编译。
答案 1 :(得分:2)
您可以使用Sparse Checkouts to only checkout the files you need。
git clone --no-checkout remote
git sparse-checkout init --cone
git sparse-checkout set <path1> <path2> ...
clone with a filter中有一个非常新的选项,这样,您的.git
年长者将只限于所需的文件和历史记录。检出very extensive answer over on the unix stackexchange的链接。看来---filter
必须由您的git remote支持。
git clone --no-checkout --filter=blob:none remote
git sparse-checkout init --cone
git sparse-checkout set <path1> <path2> ...
this blog post with a couple of great examples on how to setup your sparse checkout configuration中的更多详细信息。
答案 2 :(得分:0)
我认为您必须复制整个目录才能使用文件。 因此无法删除它们,因为下一个请求请求会将它们再次复制到本地克隆中。
也许在git中使用子目录之类的东西。