2

git add和 和有什么不一样git commit

我知道前者增加了分期。但是添加到分期意味着什么?

首先添加到暂存然后进行提交不是额外的步骤吗?事实上,它并没有就此结束,我们还必须做一个push将我们的更改实际保存到集中存储库。我在这里错过任何一点吗?

4

3 回答 3

3

暂存的重点是选择您希望成为提交的一部分的更改。它使提交更清晰,因为它允许您一次执行几件不相关的事情,然后根据需要将它们整齐地分阶段放入不同的提交中。

总结一下:staging选择更改作为提交的一部分,更改提交到一个单独的独立实体中并使它们成为历史的一部分,而push让其他人知道更改,使它们或多或少永久化。

将所有这些操作分开是非常有意义的,它为您的工作流程提供了很大的灵活性和自由度。

于 2014-01-02T18:25:27.517 回答
2

我将一步一步地尝试:

假设您有一个存储库 A。当您进行克隆时,您会将所有内容复制到本地存储库克隆 AClone。然后,假设您更改了 3 个文件。
为了与 repo A 的其他用户共享您的更改,您需要执行几个步骤:
1. 暂存您要提交的文件。(想象一下,你只想提交这 3 个中的一个)。在这种情况下,暂存意味着“标记”它们以提交。
2.创建一个提交(一个代表更改的项目),它可以使用暂存的文件(在您的情况下是一个文件)创建。
3. 此提交是在存储库的本地副本上创建的,尚未共享。
4. 最后一步是您需要“同步”您的本地存储库克隆(AClone)和远程(在某些服务器上) A,您执行推送(git push)。此时 git 将尝试从远程仓库 (A) 上的本地副本 (AClone) 创建提交。这会产生“推送”效果,意味着您正在将更改“推送”到服务器存储库。

希望这可以帮助

于 2014-01-02T18:36:50.407 回答
0

They are two sides of the same coin:

  • Commits represent discrete units of work that you want to bundle together in the change history.

  • Adds are file-based actions you use to build up a commit.

This way you can add and remove files from a commit so that the commit itself makes sense--is a whole that can be understood down the line.

It seems like make-work until you are working on a more complex project. If you'd like, you can use git commit -a to do both steps together.

于 2014-01-02T18:29:40.997 回答