我在本地提交了几个更改,然后使用“git push origin master”推送到github。它总是推送完整的代码库(根据传输的数据量判断)。
我肯定错过了一些简单的东西...应该只推送更改的文件吗?
Git能版本化整个文件树,每个提交指向一个完整的树快照。Git依靠压缩来保持存储库的大小。因此,当你推送数据时,需要传输的是这些快照,而不是差异。实际上,Git会询问服务器它的最新提交是什么,然后发送在该分支上构建的所有本地提交。这些对象在传输时可能已经被压缩,但它们仍然是快照。
这至少是我的理解。
git add
是无害的——Git会识别这一点并不实际执行任何操作。但是,如果您有任何其他文件(例如编译的.obj
文件)被添加到git add .
中,那么这可能会解释您所看到的行为。建议经常使用git status
,以确保您对已更改内容的理解与 Git 的理解相匹配。 - Greg Hewgill