0

对于当前项目,我们在 github 上有一个存储库。每次我处理一个问题时,我都会创建一个本地分支,并在完成后将其推送到 repo。有时推送是即时的,有时我必须等待它将所有文件上传到 repo (150MB)。我不确定,但我认为当我在其上创建本地分支时,同时主分支得到更新并且我当前的本地落后,推送到服务器总是需要更长的时间。

我使用本地分支

git checkout -b branch_name_issue_num

然后当我完成后,我将更改推送到 repo 上的新分支

git push origin branch_name_issue_num

任何想法为什么有时会再次上传所有文件?

4

1 回答 1

1

当“即时推送”很可能是指快进合并时 - 即远程分支中没有任何更改,因为您创建了一个本地功能分支。在这种情况下,remote简单地接受您的更改并更新分支指针。

引用git 文档

您会在该合并中注意到“快进”一词。因为您合并的分支指向的提交直接位于您所在的提交的上游,所以 Git 将指针向前移动。换一种说法,当您尝试将一个提交与可以通过遵循第一个提交的历史到达的提交合并时,Git 通过向前移动指针来简化事情,因为没有不同的工作可以合并在一起——这被称为“快进”。

关于你问题的第二部分,很难准确理解你在问什么?我认为您正在推动本地功能分支并创建远程功能分支,但是当您说“为什么要再次上传所有文件?”时,我不知道您的意思。

在不深入细节的情况下,git 将文件存储为对象——它本身没有“文件”的概念。如果您修改现有文件,git 将不会存储该文件的全新版本,而是存储两者之间差异的增量。

于 2013-02-20T16:42:34.473 回答