Git:添加vs推送与提交
git add
, push
和commit
什么区别?
只是来自SVN的一点点困惑,其中“更新”将“添加”的东西,提交做一个“推”,并将“添加”以及
git中有所有不同的function。 希望从你的经验中得到一些解释。
-
git add
将您的修改后的文件git add
到稍后提交的队列中 。 文件没有提交 -
git commit
提交已经添加的文件,并用日志创build一个新的修订…如果你不添加任何文件,git将不会提交任何东西。 你可以将这两个操作与git commit -a
结合起来 -
git push
将你的改变git push
送到远程仓库。
从这个混帐作弊表中的这个数字提供了一个工作stream程的好主意
git add
不在图中,因为build议的提交方式是合并的git commit -a
,但是你可以在思维上添加一个git add
到更改块来理解stream程。
最后, push
是一个单独命令的原因是git
的哲学。 git
是一个分布式版本控制系统,你的本地工作目录是你的仓库! 您提交的所有更改都会立即反映和logging。 push
只是用来更新远程回购(你可能会与他人分享),当你完成任何你正在做的事情。 这是一种干净利落的工作方式,可以在本地保存更改(无需networking开销),只在需要时更新,而不是在每次提交时更新。 这间接地导致更容易的提交/分支等(为什么不,对吗?什么费用你?)这导致更多的保存点,而不会与储存库混淆。
git add
select更改
git commit
logging当地的变化
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开始跟踪文件。
提交您的本地存储库上的当前更改
推动推动本地回购上游。