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

git push是用来做什么的?


当前回答

提交更改时,将更改保存为本地存储库中的单个逻辑集。你可以多次这样做而不用推。在它们被推送之前,它们不会离开您的本地存储库,这意味着远程存储库还没有这些更改集,因此当其他人从远程存储库中进行拉取时,您的提交不会被拉取。

当您推送时,您在本地存储库中所做的所有提交将被传输到远程存储库,因此当共享此远程存储库的其他开发人员进行拉取时,他们将把您的更改传输到他们的本地存储库。 查看Git命令和备忘单。

其他回答

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

如果您想象在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仓库=一系列的提交(树)。

本地存储库:计算机上的存储库。

远程存储库:服务器上的存储库(GitHub)。

git commit:追加一个新的提交(最后一次提交+阶段性修改)到本地存储库。(提交文件存储在/.git文件夹中。)

git push, git pull:同步本地存储库和其关联的远程存储库。推—从本地应用更改到远程,拉—从远程应用更改到本地。

一个非常粗略的类比:如果我们比较git commit是保存一个编辑过的文件,那么git push是将该文件复制到另一个位置。

请不要把这个类比放在这个上下文之外——提交和推送不太像保存编辑过的文件并复制它。也就是说,为了比较起见,它应该成立。

有三件事需要注意:

Working directory — folder where our code files are present Local repository — This is inside our system. When we do the commit command the first time, then this local repository is created in the same place where our working directory is. Checkit (.git) file get created. After that whenever we do commit, this will store the changes we make in the file of the working directory to the local repository (.git). Remote repository — This is situated outside our system like on servers located any where in the world, like GitHub. When we make a push command then code from our local repository gets stored at this remote repository.