我已经修改了存储库子目录中的一个单独文件,并希望将该文件推送到Github。
我对一个文件进行了小改动,不想重新上传整个存储库。
目前我看到的所有说明都要求我在本地与主分支合并,然后将本地主分支推送到远程源。
我如何只推送那一个文件?
我已经修改了存储库子目录中的一个单独文件,并希望将该文件推送到Github。
我对一个文件进行了小改动,不想重新上传整个存储库。
目前我看到的所有说明都要求我在本地与主分支合并,然后将本地主分支推送到远程源。
我如何只推送那一个文件?
当你执行推送操作时,Git只会获取你已经提交的更改。
还记得当你执行git status
命令时,它会显示自上次推送以来你更改过的文件吗?
一旦你提交了这些更改并进行了推送,它们就是唯一被推送的文件,所以你不必担心整个主分支都被推送了,因为实际上并没有。
如何推送单个文件:
git commit yourfile.js
git status
git push origin master
非常简单。只需按照以下步骤操作:
1. git status
2. git add {文件名} //您已更改的文件名
3. git status
4. git commit -m '{您的消息}'
5. git push origin master
首先要说的是,git的工作方式并不是直接推送/拉取文件。
你在推送/拉取指向提交的引用。那么,在git中,提交是一棵对象树的引用(其中文件被表示为对象之一)。
因此,当您推送提交时,git会将一组引用推送到像这张图片中一样:
如果您尚未推送主分支,则将推送整个分支的历史记录。
因此,在您的示例中,当您提交和推送您的文件时,如果之前没有推送过,则整个主分支将被推送。
要做到您所要求的,您需要创建一个无历史记录的干净分支,就像这个答案中的操作。
如果您提交一个文件并推送您的修订版本,它不会传输整个存储库,而是会推送更改。
仅推送单个文件
git commit -m "Message goes here" filename
仅推送两个文件。
git commit -m "Message goes here" file1 file2
它只会推送新的提交。它不会推送整个“master”分支。这是使用分布式版本控制系统的好处之一。Git会找出实际需要的内容,并仅推送这些部分。如果你所在的分支已被其他人更改并推送,你需要先拉取。然后再推送你的提交。
git status #然后找到需要推送的文件 git add example.FileExtension
git commit "message is example"
git push -u origin(或者你使用的其他名称)master(或者你想要推送到的某个分支的名称)