Git - 如何在不克隆的情况下将新文件推送到 master

Git - How to push new files to master without cloning

我处在一个奇怪的困境中。我要克隆的存储库太大,所以我一直在使用稀疏结帐来获取我需要的特定文件和文件夹。以下是我执行此操作所遵循的说明:Is it possible to do a sparse checkout without checking out the whole repository first?

一个例子:我能够从存储库中检出文件夹 1 和文件夹 2。

Repository   
--> Folder1
--> Folder2

我现在需要将包含文件的新文件夹保存到存储库中。做这个的最好方式是什么?

它的结构必须是这样的:

    Repository   
    --> Folder1
    --> Folder2
    --> NewFolder

我将此移至一个答案,因为我认为它会帮助我向您展示我的建议,以便您可以在我不理解您时告诉我。

The repository that I want to clone is too large so I've been using sparse-checkout to get specific files and folders that I need.

请注意,仅部分 稀疏签出有助于解决此问题!稀疏结帐仅控制工作树中显示的内容;您仍在克隆整个存储库。

An example: I was able to checkout Folder 1 and Folder 2 from the repository.

我假设你的意思是你已经对这两个文件夹执行了稀疏检查:

$ git clone --no-checkout https://git.example.com/myrepository
$ cd myrepository
$ git config core.sparseCheckout true
$ echo -e 'Folder1\nFolder2' > .git/info/sparse-checkout
$ git checkout master

因此您的工作目录如下所示:

$ ls
Folder1 Folder2

您想创建一个新文件夹。您可以简单地通过添加和填充文件夹来做到这一点:

$ mkdir newfolder
$ echo 'Hello world' > newfolder/newfile
$ git add newfolder
$ git commit -m 'added a new folder'