【发布时间】:2011-09-02 20:26:01
【问题描述】:
gitadd、push和commit有什么区别?
来自 SVN 有点困惑,“更新”会“添加”东西,而提交会“推送”并且也会“添加”
git 中有各种不同的功能。希望从您的经验中得到一些解释。
【问题讨论】:
标签: git repository push commit add
gitadd、push和commit有什么区别?
来自 SVN 有点困惑,“更新”会“添加”东西,而提交会“推送”并且也会“添加”
git 中有各种不同的功能。希望从您的经验中得到一些解释。
【问题讨论】:
标签: git repository push commit add
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 完全按照运行时的状态暂存文件 git 添加命令。如果您现在提交,则为 benchmarks.rb 的版本 是你上次运行 git add 命令时它会如何进入 提交,而不是文件在您工作中的版本 运行 git commit 时的目录。如果在运行后修改文件 git add,你必须再次运行 git add 来暂存最新版本的 文件
摘自:Chacon,Scott。 “专业的 Git。”施普林格,2009-08-19T00:00:00+00:00。电子书。 此材料可能受版权保护。
【讨论】:
add 告诉 git 开始跟踪文件。
commit 将您当前的更改提交到本地存储库
push 将你的本地 repo 推送到上游。
【讨论】:
【讨论】:
add -in git 用来告诉git我们要提交哪些文件,它把文件放到暂存区
commit- 在 git 中用于将文件保存到本地机器,这样如果我们进行任何更改甚至删除文件,我们仍然可以恢复我们提交的文件
push - 如果我们在本地机器上提交我们的文件,如果我们的本地机器丢失、损坏等,它们仍然很容易丢失,以保证我们的文件安全或共享我们的文件通常我们希望保留我们的文件在像 Github 这样的远程存储库上。为了节省远程存储库,我们使用 push
示例 暂存名为 index.html 的文件 git add index.html
提交暂存的文件 git commit -m '你的提交名称'
将文件推送到 Github git push origin master
【讨论】: