如何Git 将下载的文件推送到远程?

How to Git Push Downloaded files to Remote?

我在 bitbucket.org 上有一个大约 2GB 的大项目。出于某种原因,git 克隆命令在两者之间中断。所以我决定下载 bitbucket 提供的 zip 版本的源文件。

现在我想做的是,无论我对这些文件做了什么更改,我都想通过 bitbucket 将它们上传到 Git 存储库。

这是我刚试过的:

  1. 我将所有文件从 zip 解压到文件夹 "myproject"

  2. 然后我 运行 下面的命令 git 这个文件夹中的命令

git init

git add .

git commit -m "test commit"

所以这一步为我初始化了一个本地 git 存储库来存储这些下载的文件。

  1. 然后我运行下面的命令来设置远程仓库

git add origin https://xyz@bitbucket.org/myproject/myproject.git

  1. 现在我输入以下命令将更改推送到远程存储库

git push origin master

这一切 运行 没问题,但问题出在最后一步,它将整个项目上传到远程仓库,而不是只上传更新的文件。

如何解决此问题,使其只能上传更改的文件?

直接的答案是您不能只上传(推送)更改的文件,这不是 git 的工作方式。

一个git提交只计算文件的变化,然后使用校验和作为SHA_1值。

the commit records the snapshot you set up in your staging area. Anything you didn’t stage is still sitting there modified; you can do another commit to add it to your history. Every time you perform a commit, you’re recording a snapshot of your project that you can revert to or compare to later

因此,未更改的文件对 git 存储库的大小影响很小。如果你想让巨大的 repo 变得苗条,你应该在提交历史中找到一些胖提交,然后找到最大的文件并在所有提交历史中删除它们。更多详细信息,您可以参考 this chapter.

中的删除对象部分