在我将要讲解的Git教程中,Git提交用于存储您所做的更改。

git push是用来做什么的?


当前回答

由于Git是一个分布式版本控制系统,不同之处在于commit会将更改提交到本地存储库,而push会将更改提交到远程存储库。

其他回答

Git push用于将您在本地存储库上完成的提交添加到远程存储库中。与git一起,它允许人们进行协作。

Git提交将您的更改记录到本地存储库。

Git用本地更改推送更新远程存储库。

由于Git是一个分布式版本控制系统,不同之处在于commit会将更改提交到本地存储库,而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请求结束。所以一天记录里的每件事都与他们之间发生的事情相对应。每天,我都要完成一个或多个逻辑任务,这些任务需要修改一些文件。在该任务期间编辑的文件列在一个索引中。

每个子任务(这里的任务A和任务B)都是单独的提交。git add命令将文件添加到“已更改文件索引”列表中。这个过程也称为暂存,在现实中记录更改的文件和执行的更改。git commit命令记录/完成更改和相应的索引列表,以及一个自定义消息,以供以后引用。

请记住,您仍然只更改存储库的本地副本,而不是GitHub上的副本。在此之后,只有当你执行git推送时,才能将所有这些记录的更改以及每次提交的索引文件记录到主存储库(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 push来将你本地分支上的提交推送到远程存储库。

git push命令有两个参数:

远程名称,例如origin 分支名称,例如master

例如:

git push  <REMOTENAME> <BRANCHNAME> 
git push  origin       master