git add
和git commit
之间有什么区别?
据我所知,前者增加了分期。但是加入分期意味着什么?
首先添加到暂存然后执行提交是不是一个额外的步骤?事实上,它并没有就此结束,我们还必须做push
来实际将我们的更改保存到集中式存储库。我在这里错过任何一点吗?
答案 0 :(得分:3)
分段的重点是选择您希望成为提交一部分的更改。它使提交更清晰,因为它允许您一次完成几个不相关的事情,然后根据需要巧妙地将它们分成不同的提交。
总结: staging 选择更改作为提交的一部分,提交将更改捆绑到一个单独的独立实体中,并使它们成为历史记录的一部分,并且推送让其他人知道这些变化,使它们或多或少地永久化。
将所有这些操作分开是很有意义的,它为您的工作流程提供了很大的灵活性和自由度。
答案 1 :(得分:2)
我会尝试一步一步走:
想象一下,您有一个存储库A.当您执行克隆时,您将所有内容复制到本地存储库克隆AClone。然后,想象你改变了3个文件。
为了与回购A的其他用户分享您的更改,您需要执行几个步骤:
1.暂存要提交的文件。 (想象一下,你只想提交其中的一个)。在这种情况下进行分段意味着“标记”它们以进行提交
2.创建一个提交(表示更改的项目),可以使用暂存的文件创建(在您的情况下为一个文件)。
3.此提交是在您的本地存储库副本上创建的,尚未共享
4.最后一步是你需要“同步”本地存储库克隆(AClone)和远程(在某些服务器上)A,你进行推送(git push)。此时git将尝试从远程仓库(A)上的本地副本(AClone)创建提交。这会产生“推动”效果,意味着您将更改“推送”到服务器存储库。
希望这有帮助
答案 2 :(得分:0)
它们是同一枚硬币的两面:
Commits
表示您希望在更改历史记录中捆绑在一起的离散工作单元。
Adds
是基于文件的操作,用于构建commit
。
通过这种方式,您可以在提交中添加和删除文件,以便提交本身有意义 - 这是一个可以理解的整体。
在你开展一个更复杂的项目之前,这似乎是做工作。如果您愿意,可以使用git commit -a
一起执行这两个步骤。