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

时间:2018-01-23 21:12:42

标签: git git-commit git-checkout

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

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

Repository   
--> Folder1
--> Folder2

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

它的结构必须如下:

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

1 个答案:

答案 0 :(得分:2)

我正在回答这个问题,因为我认为这有助于我向你展示我的建议,以便你可以告诉我,如果我不理解你。

  

我想要克隆的存储库太大,所以我一直在使用稀疏检查来获取我需要的特定文件和文件夹。

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

  

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

我认为你的意思是你已经对这两个文件夹进行了稀疏检查:

$ 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'