为什么要在 git 中添加和提交?
Why add and commit in git?
我是 git 的新手,我问我为什么必须使用“git add
”和“git commit
”将文件提交到我的存储库中。
所有 IDE 我都试过了,只需单击一下即可提交文件。这意味着 IDE 结合了 'add' 和 'commit',对吧?!
所以我找不到对这两个命令进行编程的任何理由。
There are subtle differences between git and other cloud-based /
svn repository systems. One of which is the fact git has
a so-called "staging area
".
git add
在 git 中,在您的存储库中更新文件之前,首先将其添加到所谓的 staging area
。
正如函数名称所暗示的那样,这是通过 git add
命令完成的。
在暂存阶段,您告诉git您要更新哪些文件。
这也意味着,如果您改变主意,可以删除临时区域中的某些更新。
git commit
生成版本后,您认为可以将其发布到存储库中,您可以提交更改,以便您和其他人可以看到它们。
再一次,命名的命令派生自所描述的操作,因此在本例中它将是 git commit
,它会提交您提出的更改在您的暂存区 (通过 git add
).
所以不同之处在于,如果您使用互联网浏览器将文件直接上传到存储库中,您实际上跳过了 git add
阶段,您 git commit
文件直接上传到存储库中。
现在,如果您有一个 git
项目,您只能自己管理,那么是的,git add
对您来说基本上是无用的。然而,在一个有多人工作的大型项目中,你想确保你不会覆盖别人的代码,或者只是想确保你进行了正确的版本管理,正确利用暂存区。
其中一个主要优点是,在提交阶段,您通常不会提交单个文件,而是提交多个更改,这样可以更容易地跟踪谁做了什么,而不是查找每个文件一个一个。
For more info (not only on) git add
and git commit
I would thoroughly recommend studying this guide. At least personally speaking, I became fluent in git from this resource alone
git中的索引就像一个预检区域,一个可以准备下一次提交内容的地方。
如果您使用某些 IDE 或者如果您一直使用 -a
,您 可以 基本上忽略它的存在。有些人这样做。在最简单的情况下,这可能是一个不错的选择。
然而,随着复杂性的增加,越来越难不与其进行更有效的交互,而这始于更好的理解。
此处有更多详细信息:
What does the git index contain EXACTLY?
也许在那里?
更改可以分布在多个文件中,您可以将所有这些更改捆绑在一次提交中,并清楚地说明您所做的工作。
例如,在 Web 开发中,当您完成创建新页面时,您可能更改了多个文件。
您的提交信息可能是:Add index page
其中包含文件:
index.html
script.js
...
将此推送到远程后,下一个拉取的人将得到一个稍微完成的索引页面,而不仅仅是一个文件。
我是 git 的新手,我问我为什么必须使用“git add
”和“git commit
”将文件提交到我的存储库中。
所有 IDE 我都试过了,只需单击一下即可提交文件。这意味着 IDE 结合了 'add' 和 'commit',对吧?!
所以我找不到对这两个命令进行编程的任何理由。
There are subtle differences between git and other cloud-based / svn repository systems. One of which is the fact git has a so-called "
staging area
".
git add
在 git 中,在您的存储库中更新文件之前,首先将其添加到所谓的
staging area
。 正如函数名称所暗示的那样,这是通过git add
命令完成的。在暂存阶段,您告诉git您要更新哪些文件。 这也意味着,如果您改变主意,可以删除临时区域中的某些更新。
git commit
生成版本后,您认为可以将其发布到存储库中,您可以提交更改,以便您和其他人可以看到它们。
再一次,命名的命令派生自所描述的操作,因此在本例中它将是
git commit
,它会提交您提出的更改在您的暂存区 (通过git add
).
所以不同之处在于,如果您使用互联网浏览器将文件直接上传到存储库中,您实际上跳过了 git add
阶段,您 git commit
文件直接上传到存储库中。
现在,如果您有一个 git
项目,您只能自己管理,那么是的,git add
对您来说基本上是无用的。然而,在一个有多人工作的大型项目中,你想确保你不会覆盖别人的代码,或者只是想确保你进行了正确的版本管理,正确利用暂存区。
其中一个主要优点是,在提交阶段,您通常不会提交单个文件,而是提交多个更改,这样可以更容易地跟踪谁做了什么,而不是查找每个文件一个一个。
For more info (not only on)
git add
andgit commit
I would thoroughly recommend studying this guide. At least personally speaking, I became fluent in git from this resource alone
git中的索引就像一个预检区域,一个可以准备下一次提交内容的地方。
如果您使用某些 IDE 或者如果您一直使用 -a
,您 可以 基本上忽略它的存在。有些人这样做。在最简单的情况下,这可能是一个不错的选择。
然而,随着复杂性的增加,越来越难不与其进行更有效的交互,而这始于更好的理解。
此处有更多详细信息:
What does the git index contain EXACTLY?
也许在那里?
更改可以分布在多个文件中,您可以将所有这些更改捆绑在一次提交中,并清楚地说明您所做的工作。
例如,在 Web 开发中,当您完成创建新页面时,您可能更改了多个文件。
您的提交信息可能是:Add index page
其中包含文件:
index.html
script.js
...
将此推送到远程后,下一个拉取的人将得到一个稍微完成的索引页面,而不仅仅是一个文件。