在我将要讲解的Git教程中,Git提交用于存储您所做的更改。
git push是用来做什么的?
在我将要讲解的Git教程中,Git提交用于存储您所做的更改。
git push是用来做什么的?
当前回答
提交:快照|变更集|版本|历史记录|存储库“另存为”。Git仓库=一系列的提交(树)。
本地存储库:计算机上的存储库。
远程存储库:服务器上的存储库(GitHub)。
git commit:追加一个新的提交(最后一次提交+阶段性修改)到本地存储库。(提交文件存储在/.git文件夹中。)
git push, git pull:同步本地存储库和其关联的远程存储库。推—从本地应用更改到远程,拉—从远程应用更改到本地。
其他回答
有三件事需要注意:
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.
Git提交是提交在本地存储库中暂存的文件。Git push是快进合并本地的主分支和远程的主分支。但合并并不总能成功。如果出现拒绝,您必须拉,以便您可以成功地进行git推送。
基本上,Git commit会把你的更改放到本地存储库中,而Git push会把你的更改发送到远程位置。
基本上,git提交“将更改记录到存储库”,而git推送“更新远程引用和相关对象”。因此,第一个用于连接本地存储库,而后一个用于与远程存储库交互。
下面是Oliver Steele的一张漂亮的图片,解释了Git模型和命令:
阅读更多关于git push和git pull的内容:push和pull(我首先提到的文章)。
如果您想象在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)。