在我正在学习的Git教程中,git commit
用于存储您所做的更改。
那是git push
用来干什么的呢?
在我正在学习的Git教程中,git commit
用于存储您所做的更改。
那是git push
用来干什么的呢?
Answers:
基本上,git commit
“ 将更改记录记录到存储库中 ”,而git push
“ 与关联对象一起更新远程引用 ”。因此,第一个用于与本地存储库关联,而第二个则用于与远程存储库进行交互。
这是Oliver Steele的漂亮图片,解释了git模型和命令:
了解更多关于git push
和git pull
对GitReady.com(我称之为第一的文章)
git push
。实际上,的目标git push
可以是任何 git存储库。它可以在其他目录(你自己的本地硬盘上git remote add clone ~/proj/clone.git; git push clone master
或git push ~/proj/clone.git master
,例如),或者你的一个Git仓库自己的主机服务。
好吧,基本上git commit会将您的更改放入本地存储库,而git push将您的更改发送到远程位置。
git push
上传实际的更新文件或某些特殊的“ diff”文件?
只想添加以下几点:
除非您提交,否则Yon不会推送,因为我们git push
习惯将在本地分支上所做的提交推送到远程存储库。
该git push
命令带有两个参数:
远程名称,例如,origin
分支名称,master
例如:
git push <REMOTENAME> <BRANCHNAME>
git push origin master
如果您想象在Github上的存储库中维护着一个日志文件add
,commit
那么更容易理解git命令的用法。对我而言,典型项目的日志文件可能如下所示:
---------------- 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 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 commit会将您的更改放入本地存储库,而git push将您的更改发送到远程位置。由于git是一个分布式版本控制系统,因此区别在于commit会将更改提交到本地存储库,而push会将更改推到远程存储库
来源Google
http://gitref.org/basic/此链接也将非常有用