2017-07-24 298 views
-1

我想更好地理解git如何工作。因此,我们有一个工作目录(我们的项目文件),一个临时区域(准备好要做的更改集合)和一个git存储库(在提交时应用这些更改)。git add和git commit之间的区别-a

但是我很努力去理解,因为它好像是文件被“追踪”或者不是指某种特定的东西,但我们仍然说每个部分都有自己的追踪形式?

它是正确的说:

  1. 如果我添加或在我的工作目录修改文件,混帐检测了这一切。我们是否说这些文件在此时被git“追踪”?或者他们只是“检测”(或其他)?项目文件夹/工作目录中的所有内容都“被跟踪”了吗?

  2. git add {directory or filename}似乎将内容添加到临时区域,是吗?在这一点上,我们说所有上演的文件都是“被追踪”的文件,当我们做git ls-files时显示的文件,我相信它显示了暂存区中的文件?或没有?

  3. git commit -a将暂存区域中的所有更改移动到存储库。

这是正确的吗?

+1

[Git:add vs push vs commit]可能重复(https://stackoverflow.com/questions/6143285/git-add-vs-push-vs-commit) – Jonas

+0

@Jonas我在问一个稍微不同的问题比这个,但这仍然是一个有用的链接,谢谢 –

回答

0
  1. 如果我在我的工作目录中添加或修改文件,git会检测到所有这些。我们是否说这些文件在此时被git“追踪”?或者他们只是“检测”(或其他)?项目文件夹/工作目录中的所有内容都“被跟踪”了吗?

Git检测修改和删除的文件。如果他们被跟踪(即他们被添加之前并提交),他们出现在git status的输出为“修改”。未跟踪的新文件和修改后的文件显示为“未跟踪”。

  • git add {directory or filename}出现的内容添加到所述分级区域,是吗?在这一点上,我们说所有上演的文件都是“被追踪”的文件,当我们做git ls-files时显示的文件,我相信它显示了暂存区中的文件?或没有?
  • 暂存区域用于准备下一个提交。你可以说它包含的文件被“追踪”,但其内容不是永久的;它可以随时更改。为了让一个新文件真正被Git“追踪”,你必须提交分阶段的更改。

  • git commit -a移动的种种变化在暂存区到存储库。
  • git commit创建一个新的提交使用上演的内容。 git commit -a自动对已更改或删除的文件进行跟踪,然后对提交进行操作。新文件不会被添加。

    查看更多about git commit以及如何Git records the changes to the repository

    +0

    以前添加到哪里?在什么情况下修改?是否跟踪所有阶段文件?所有跟踪的文件都上演了吗?但是提交 - 一个阶段跟踪被更改或删除的文件,但是这也用于定义跟踪? –

    +0

    “之前添加”的意思是“git add”。修改意味着修改。没有上下文是必需的。只需点击并编辑并更改现有文件即可。阅读我在答案的最后一句中链接的文档页面。对于你所关心的问题的答案是[那里](https://git-scm.com/book/en/v2/Git-Basics-Recording-Changes-to-the-Repository),在第二段。阅读整个[Git书](https://git-scm.com/book/en/v2)以了解Git如何工作。 – axiac

    +0

    接下来,您可能会问“什么是快照?”。它在[“1.3入门 - Git基础知识”](https://git-scm.com/book/en/v2/Getting-Started-Git-Basics)一章中进行了解释。 – axiac

    0

    git add将文件添加到被跟踪以及分期(当前提交)

    git commit -a将文件添加到分段只有如果他们已经追踪

    的Git注意到没有时,他们跟踪的文件被添加到repo目录,因为它将它们理解为文件更改。但是,除非你明确地将它们添加到跟踪不会跟踪任何变化增量

    这个问题可以帮助你:Concept of git tracking and git staging

    也看到这个https://www.howtogit.net/concepts/types-of-changes.html

    我认为,我们的困惑的主要观点是,git add可以做两件事(增加如果尚未跟踪和阶段),而git commit -a只做一(添加跟踪的文件的阶段)

    +0

    所以“索引”是另一个国家?在某些时候“添加”过的文件?对索引,追踪,分阶段,承诺等之间的区别是否存在某种解释?我认为提交数据*从中转区到回购站? –

    +1

    @ The29thSaltshaker术语'index'和'stage'可以互换使用。它们表示相同的事情:用户用来准备下一次提交的内容的Git功能。 – axiac

    +0

    但他提到,git add将文件添加到索引和分段,暗示它们是不同的东西 –

    相关问题