在我正在进行的Git教程中,git commit
用于存储您所做的更改。
当时使用的git push
是什么?
答案 0 :(得分:1510)
基本上git commit
“记录对存储库的更改”而git push
“更新远程引用及相关对象”。所以第一个用于本地存储库,而后一个用于与远程存储库交互。
这是来自Oliver Steele的精彩图片,它解释了git模型和命令:
详细了解GitReady.com上的git push
和git pull
(我先提到的文章)
答案 1 :(得分:191)
提交:向本地存储库添加更改
推送:将最后一次提交转移到远程服务器
答案 2 :(得分:54)
好吧,基本上git commit会将您的更改放入您的本地仓库,而git push会将您的更改发送到远程位置。
答案 3 :(得分:25)
由于git是一个分布式版本控制系统,不同之处在于commit会将更改提交到本地存储库,而push会将更改推送到远程仓库。
答案 4 :(得分:24)
git push
用于将您在本地存储库上完成的提交添加到远程存储库 - 与git pull
一起,它允许人们进行协作。
答案 5 :(得分:13)
git commit
将您的更改记录到本地存储库。
git push
更新 远程存储库。
答案 6 :(得分:12)
提交:{快照|变更集|历史记录|版本| '存储库的另存为。 Git repository = 提交的系列(树)。
本地存储库:您计算机上的存储库。
远程存储库:服务器上的存储库(例如 Github.com )。
git commit
:向本地提交(最后提交 + 暂存修改) >存储库。
git push
,git pull
:将本地存储库与其关联的远程存储库同步。 push
- 将本地中的更改应用于远程,pull
- 将更改从远程应用到本地< /强>
答案 7 :(得分:5)
只想添加以下几点:
Yon无法推送,直到您提交,因为我们使用git push
将您本地分支上的提交推送到远程存储库。
git push
命令有两个参数:
远程名称,例如origin
分支名称,例如master
例如:
git push <REMOTENAME> <BRANCHNAME>
git push origin master
答案 8 :(得分:5)
需要注意三点:
1)工作目录 -----我们的代码文件存在的文件夹
2)本地存储库 ------这是我们的系统内部。当我们第一次做
COMMIT命令然后创建此本地存储库。
在我们的工作目录所在的同一地方,
Checkit(.git)文件被创建
在那之后,当我们提交时,这将存储
我们在工作目录的文件中所做的更改
本地存储库(.git)
3)远程存储库 -----它位于我们的系统之外,就像在服务器上一样 位于世界的任何地方。像github。 当我们发出PUSH命令然后从我们的本地编码 存储库存储到此远程存储库
答案 9 :(得分:3)
一个非常粗略的比喻:如果我们将git commit
与保存已编辑的文件进行比较,那么git push
会将该文件复制到另一个位置。
请不要在此上下文中进行类比 - 提交和推送与保存已编辑的文件并复制它完全不同。也就是说,它只能用于比较。
答案 10 :(得分:0)
git commit只是正式保存我们的更改,对于我们提交的每个提交提交消息, 一旦我们完成提交,我们可以将其推送到远程以查看我们的全局变化
这意味着我们可以在推送到远程之前进行多次提交(我们可以看到提交的列表和消息) git使用提交ID保存每个提交,提交ID为40位代码
我只在我想在远程看到我的变化时使用git push(之后我将检查我的代码是否在jenkins中运行)
答案 11 :(得分:0)
如果您想象在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 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。
答案 12 :(得分:-1)
以外行术语来说,git commit
是git push
之前的步骤,您按顺序运行它们以成功将文件git gitub发送到github。
答案 13 :(得分:-2)
好吧,基本上git commit会将您的更改放入您的本地仓库,而git push会将您的更改发送到远程位置。由于git是一个分布式版本控制系统,不同之处在于commit会将更改提交到本地存储库,而push会将更改推送到远程repo
来源 Google
http://gitref.org/basic/此链接也非常有用
答案 14 :(得分:-3)
git commit
用于提交在本地存储库中暂存的文件。 git push
是快速合并本地端的主分支与远程主分支。但合并并不总是成功。如果出现拒绝,您必须pull
才能成功git push
。