在我正在学习的 Git 教程中,
那么
git commit
用于存储您所做的更改。那么
git push
用于什么呢?git commit
用于存储您所做的更改。git push
用于什么呢?git commit
比作保存编辑后的文件,那么git push
就像是将该文件复制到另一个位置。如果你想象在GitHub上维护一个日志文件,那么理解Git命令add
和commit
的使用就会更容易。
对我来说,一个典型项目的日志文件可能如下所示:
---------------- Day 1 --------------------
Message: Completed Task A
Index of files changed: File1, File2
Message: Completed Task B
Index of files changed: File2, File3
-------------------------------------------
---------------- Day 2 --------------------
Message: Corrected typos
Index of files changed: File3, File1
-------------------------------------------
...
...
...and so on
git pull
请求开始一天的工作,并以git push
请求结束。因此,一天记录中的所有内容都对应于它们之间发生的事情。在每天内,我会完成一个或多个需要更改几个文件的逻辑任务。在该任务期间编辑的文件将列在索引中。git add
命令将文件添加到“更改文件的索引列表”中。这个过程也称为暂存,并实际记录了更改的文件和所执行的更改。git commit
命令记录/完成更改及相应的索引列表,并附带可供以后参考的自定义消息。git push
时,所有这些记录的更改以及每个提交的索引文件才会被记录在主存储库(GitHub上)上。git pull
# Make changes to File3 and File4
git add File3 File4
# Verify changes, run tests etc..
git commit -m 'Corrected typos'
git push
git add
和git commit
允许您将对主代码库的更改分解为系统逻辑子更改。正如其他答案和评论所指出的那样,它们当然还有许多其他用途。然而,这是其中最常见的用法之一,也是Git成为多阶段版本控制系统的驱动原则,不同于其他流行的版本控制系统如SVN。当您提交更改时,您将更改保存为本地存储库中的单个逻辑集。您可以多次执行此操作而不进行推送。在它们被推送之前,它们不会离开您的本地存储库,这意味着远程存储库尚未拥有这些更改集,因此当其他人从远程存储库拉取时,您的提交不会被拉取。
当您进行推送时,您在本地存储库中进行的所有提交都将传输到远程存储库,因此当共享此远程存储库的其他开发人员进行拉取时,他们将把您的更改传输到他们的本地存储库中。 查看Git命令和速查表此处。
Git commit 就是正式保存我们的更改。每次提交时,我们都会给出提交消息,完成提交后,我们可以将其推送到远程以全局查看我们的更改。
这意味着在推送到远程之前,我们可以进行多次提交(我们可以查看发生的提交列表和消息)。Git 使用 40 位数字代码保存每个提交。
我只有在想要在远程中查看我的更改时才使用 Git push(此后,我将检查我的代码是否在 Jenkins 中工作)。
git commit
是将已经暂存的文件提交到本地仓库。 git push
是将本地主分支与远程主分支进行快进式合并。但是合并并不总是成功的。如果出现拒绝,您必须执行pull
以便您可以成功地git push
。