Git: add vs push vs commit

Git addpushcommit之间的区别是什么?

只是来自 SVN 的一点困惑,在 SVN 中“ update”会“添加”内容,提交会“ push”,也会“ add”

Git 中有很多不同的函数,希望能从你的经验中得到一些解释。

155280 次浏览

非常好的 Pdf关于许多 GIT 的秘密。

Add 与 svn 的 Add 相同(有时它用于标记已解析的文件)。

Commit 也与 svn 相同,但它将更改提交到本地存储库中。

Add 告诉 git 开始跟踪文件。

提交在本地存储库上的当前更改

推动你的本地回购逆流而上。

  • git add将文件添加到 Git 索引中,该索引是准备提交的对象的临时区域。
  • git commit将索引中的文件提交到存储库,git commit -a是将所有修改后的跟踪文件首先添加到索引中的快捷方式。
  • git push将所有挂起的更改发送到您的分支映射到的远程存储库(例如,在 GitHub 上)。

为了理解 Git,您需要付出更多的努力,而不仅仅是浏览文档,但这绝对是值得的。只是不要尝试将 Git 命令直接映射到 Subversion,因为它们中的大多数都没有直接对应的命令。

  1. git add将修改后的文件添加到队列 以后再犯

  2. git commit提交已添加的文件,并使用日志创建一个新的修订版... ... 如果您不添加任何文件,git 将不会提交任何内容。可以将这两个操作与 git commit -a组合在一起

  3. git push将您的更改推送到远程存储库。

来自 这个蠢货小抄的这个数字很好地说明了工作流程

enter image description here

git add不在图中,因为建议的提交方式是组合的 git commit -a,但是您可以在心理上向更改块添加 git add来理解流。

最后,为什么 push是一个单独的命令是因为 git的哲学。git是一个分布式版本控制系统,而你的本地工作目录 就是你的仓库!您提交的所有更改都会立即反映和记录。push仅用于当您完成您正在进行的工作时更新远程回购(您可以与其他人共享)。这是一种在本地工作和保存更改(没有网络开销)的简单方法,只有在需要时才能更新,而不是在每次提交时更新。这间接地导致了更容易的提交/分支等(为什么不呢,对吗?你花了多少钱?)这将导致更多的保存点,而不会干扰存储库。

git add选择更改

git commit记录本地更改

git push股价变动

我对“ add”的真正用途感到困惑。我刚刚读了一段非常有启发性的文章,来自 Git Pro 这本书,我想在这里添加,因为它澄清了一些事情

事实证明,Git 按照运行 Git add 命令 上次运行 git add 命令时,它将如何进入 提交,而不是文件的版本,因为它看起来在您的工作 如果你在运行 git 提交之后修改了一个文件 Git add,必须再次运行 git add 才能展示最新版本的 文件

摘自: 查孔,斯科特,“ Pro Git”,斯普林格出版社,2009-08-19 T00:00:00 + 00:00. iBooks。 这种材料可能受版权保护。

我觉得这张图片非常有意义:

enter image description here

(来自: Oliver Steele-My Git Workflow (2008))

外接程序 git 用于告诉 git 我们要提交哪些文件,它将文件放置到暂存区域

Commit-in git 用于将文件保存到本地机器上,这样,如果我们做了任何更改,甚至删除了文件,我们仍然可以恢复已提交的文件

Push-如果我们在本地机器上提交我们的文件,它们仍然容易丢失,如果我们的本地机器丢失,损坏等,以保持我们的文件安全或共享我们的文件通常我们希望保持我们的文件在一个像 Github 这样的远程存储库。为了保存远程存储库,我们使用 push

例子 暂存名为 index.html 的文件 Git add index.html

提交已分段的文件 Git commit-m‘ name of your commit’

将文件推送到 Github 基特推动原点控制器

addcommit是相互联系的。

add允许我们继续对本地存储库进行更改,当我们希望将这些更改共享到远程存储库时,commit允许我们记录这些更改。

push命令可以被看作是将提交从本地存储库转移到远程存储库的工具。