我是git的新手,我问我为什么必须使用'git add
'和'git commit
'将文件提交到存储库中。
我尝试使用所有IDE,只需单击一下即可提交文件。这意味着IDE结合了“添加”和“提交”,对吧?!
因此,我无法找到对两个命令进行编程都有意义的原因。
答案 0 :(得分:0)
git add
在git中,文件在存储库中更新之前,首先将其添加到所谓的staging area
中。
正是按照函数名称所建议的那样,通过 git add
命令来完成此操作。
在暂存阶段中,您告诉git要更新哪些文件。 这也意味着,如果您改变主意,可以在登台区域中删除某些更新。
git commit
一旦您生成了一个版本,认为可以将其发布到存储库中,则可以提交更改,以便您和其他人可以看到它们。
再次,命名的命令源自所描述的操作,因此在这种情况下将是 git commit
,它将提交您在暂存区域中建议的更改。 (通过git add
)。
所以区别在于,如果您使用Internet浏览器直接将文件上传到存储库中,则实际上跳过了git add
阶段,而您git commit
则直接执行了存储库中的文件。
现在,如果您有一个git
项目,则只能自己管理,是的,git add
对您基本上没有用。但是,在一个有多个人工作的大型项目中,您想要确保自己不会覆盖别人的代码,或者只是想确保自己进行正确的版本管理,正确使用舞台区域。
主要优点之一是,在提交阶段,您通常不提交单个文件,而是进行多个更改,这使得更容易跟踪谁做了什么,而不是查找每个文件。一个。
有关更多信息,(不仅如此)
git add
和git commit
,我将强烈建议您学习this guide。至少就我个人而言,我仅凭此资源就能精通git
答案 1 :(得分:0)
git中的索引就像一个预检区域,在这里您可以准备下一次提交的内容。
如果您使用某些IDE或始终使用-a
进行提交,则您可以基本上忽略它的存在。有人做。在最简单的情况下,这可能不是一个坏选择。
但是,随着复杂性的增加,与它进行更有效的交互将变得越来越困难,这首先需要更好的理解。
更多详细信息在这里:
What does the git index contain EXACTLY?
也许在那里?
答案 2 :(得分:0)
更改可以散布到多个文件,您可以将所有更改捆绑在一个提交中,并清楚地标明您所做的事情。
例如,在Web开发中,当您完成创建新页面时,可能已更改了多个文件。
您的提交消息可能是:Add index page
其中包含文件:
index.html
script.js
...
将其推送到远程位置后,下一个拉取的人将获得一个稍微完成的索引页,而不只是一个文件。