问题描述
|
git
add
,push
和commit
有什么区别?
来自SVN的消息有些混乱,其中\“ update \”将\'添加\'的东西,而commit则执行\“ push \”并且也将\'add \'
git中有所有不同的功能。希望从您的经验中得到一些解释。
解决方法
git add
将您修改的文件添加到队列中,以便稍后提交。文件未提交
git commit
提交已添加的文件并创建带有日志的新修订...如果不添加任何文件,则git将不提交任何内容。您可以将两个动作与ѭ5组合使用
git push
将您的更改推送到远程存储库。
这个git备忘单中的图很好地说明了工作流程
figure3ѭ未出现在图中,因为建议的提交方式是the5ѭ的组合,但是您可以在更改块上添加一个git add
以了解流程。
最后,push
是一个单独的命令的原因是由于git
的哲学。 git
是一个分布式版本控制系统,您的本地工作目录就是您的存储库!您提交的所有更改都会立即反映并记录下来。 push
仅在完成处理的工作后才用于更新远程存储库(您可能会与他人共享)。这是一种在本地工作和保存更改(没有网络开销)并仅在需要时更新它的方法,而不是每次提交时都进行更新的一种好方法。这间接导致更容易的提交/分支等(为什么不对,对吗?要花多少钱?),这导致更多的保存点,而不会弄乱存储库。
,git add
选择更改
git commit
本地记录更改
git push
股份变动
,“ 3”将文件添加到Git索引,该索引是准备提交的对象的暂存区。
“ 4”将索引中的文件提交到存储库中,“ 5”是将所有已修改的跟踪文件首先添加到索引的快捷方式。
“ 6”将所有待处理的更改发送到分支所映射到的远程存储库(例如,在GitHub上)。
为了了解Git,您不仅需要浏览文档,还需要付出更多的努力,但这绝对是值得的。只是不要尝试将Git命令直接映射到Subversion,因为大多数命令没有直接对应的命令。
,我对“添加”的真正作用感到困惑。我刚刚从《 Git Pro》一书中读了一段非常有启发性的段落,我想在此添加它,因为它可以澄清
“事实证明,Git与运行git add命令时的文件完全一样。如果现在提交,则上次运行git add命令时的beta.benchmarks.rb版本将如何进入提交,而不是运行git commit时在工作目录中显示的文件版本。如果您在运行git add之后修改文件,则必须再次运行git add来暂存该文件的最新版本:”
摘自:查孔·斯科特(Chacon)。 “ Pro Git。” Springer,2009-08-19T00:00:00 + 00:00。 iBooks。
该材料可能受版权保护。
,add告诉git开始跟踪文件。
提交将您当前的更改提交到本地存储库
push将本地回购推到上游。
,关于许多GIT机密的非常好pdf。
添加与svn的添加相同(但是有时它用来标记文件已解析)。
Commit也与svn \相同,但是它将更改提交到本地存储库中。
,我觉得这张图片非常有意义:
(摘自:奥利弗·斯蒂尔-My Git Workflow(2008))