Git:添加vs推送与提交

git addpushcommit什么区别?

只是来自SVN的一点点困惑,其中“更新”将“添加”的东西,提交做一个“推”,并将“添加”以及

git中有所有不同的function。 希望从你的经验中得到一些解释。

  1. git add将您的修改后的文件git add 到稍后提交的队列 。 文件没有提交
  2. git commit提交已经添加的文件,并用日志创build一个新的修订…如果你不添加任何文件,git将不会提交任何东西。 你可以将这两个操作与git commit -a结合起来

  3. git push将你的改变git push送到远程仓库。

从这个混帐作弊表中的这个数字提供了一个工作stream程的好主意

在这里输入图像说明

git add不在图中,因为build议的提交方式是合并的git commit -a ,但是你可以在思维上添加一个git add到更改块来理解stream程。

最后, push是一个单独命令的原因是git的哲学。 git是一个分布式版本控制系统,你的本地工作目录你的仓库! 您提交的所有更改都会立即反映和logging。 push只是用来更新远程回购(你可能会与他人分享),当你完成任何你正在做的事情。 这是一种干净利落的工作方式,可以在本地保存更改(无需networking开销),只在需要时更新,而不是在每次提交时更新。 这间接地导致更容易的提交/分支等(为什么不,对吗?什么费用你?)这导致更多的保存点,而不会与储存库混淆。

git addselect更改

git commitlogging当地的变化

git push共享更改

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

为了理解Git,你需要投入更多的精力,而不仅仅是浏览文档,但这绝对是值得的。 只是不要试图将Git命令直接映射到Subversion,因为它们大多数没有直接的对应关系。

我很困惑什么是“添加”真的。 我刚刚从Git Pro书中读了一段非常有启发性的一段,我想在此补充一点,因为它能够澄清事情

“事实certificate,当你运行git add命令时,Git完全按照它的样子分级文件。 如果现在提交,那么benchmarks.rb的版本与上次运行git add命令时的版本相同,它是如何进入提交的,而不是在运行git commit时在工作目录中查找的文件的版本。 如果您在运行git add之后修改文件,则必须再次运行git add来暂存最新版本的文件:“

摘录:Chacon,Scott。 “Pro Git。”Springer,2009-08-19T00:00:00 + 00:00 iBooks的。 本材料可能受版权保护。

关于很多GIT秘密的非常好的pdf 。

添加是一样的svn的添加(有时它是用来标记文件parsing)。

Commit也和svn一样,但是它提交到你的本地仓库。

添加告诉git开始跟踪文件。

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

推动推动本地回购上游。