git add
,push
和commit
有什么区别?
只是有点困惑来自SVN,其中“更新”将“添加”东西,并且提交执行“推送”并且还将“添加”
git中有各种不同的功能。希望从您的经验中得到一些解释。
git add
将修改后的文件添加到队列中以便稍后提交。文件未提交git commit
提交已添加的文件并使用日志创建新版本...如果您不添加任何文件,git将不会提交任何内容。你可以将这两个动作与git commit -a
结合起来git push
将您的更改推送到远程存储库。来自this git cheat sheet的这个数字很好地说明了工作流程
git add
不在图上,因为建议的提交方式是组合的git commit -a
,但你可以在心理上添加一个git add
到更改块来理解流程。
最后,push
是一个单独命令的原因是因为git
的哲学。 git
是一个分布式版本控制系统,您的本地工作目录是您的存储库!您提交的所有更改都会立即反映并记录下来。 push
仅用于更新远程仓库(您可能与他人共享),当您完成正在处理的任何内容时。这是一种在本地工作和保存更改的简洁方法(无需网络开销),只在您需要时更新它,而不是在每次提交时更新。这间接导致更容易提交/分支等(为什么不,对吧?它花了多少钱?)这会导致更多的保存点,而不会弄乱存储库。
git add
选择变化
git commit
记录了局部变化
git push
股票变动
git add
将文件添加到Git索引,这是准备提交的对象的临时区域。git commit
将索引中的文件提交到存储库,git commit -a
是一种将所有修改后的跟踪文件首先添加到索引的快捷方式。git push
将所有挂起的更改发送到您的分支映射到的远程存储库(例如,在GitHub上)。为了理解Git,你需要投入更多的精力,而不仅仅是浏览文档,但这绝对是值得的。只是不要尝试将Git命令直接映射到Subversion,因为它们中的大多数没有直接的对应物。
我对'添加'真的有什么困惑感到困惑。我刚刚从Git Pro这本书中读到了一段非常有启发性的段落,我想在此添加,因为它澄清了一些事情
“事实证明,当你运行git add命令时,Git完全按照它的方式调度文件。如果你现在提交,就像你上次运行git add命令时的benchmarks.rb的版本是它将如何进入提交,而不是你在运行git commit时在工作目录中查找的文件版本。如果在运行git add之后修改文件,则必须再次运行git add以暂存该文件的最新版本:“
摘录自:Chacon,Scott。 “Pro Git。”Springer,2009-08-19T00:00:00 + 00:00。 iBooks的。本资料可能受版权保护。
add tell git开始跟踪文件。
commit在您的本地存储库上提交您当前的更改
push推动你上游的本地回购。