Win*_*Win 8 git git-commit git-index
该混帐书定义git的指标:
Git索引用作工作目录和存储库之间的临时区域.您可以使用索引构建一组要一起提交的更改.创建提交时,提交的内容是索引中当前的内容,而不是工作目录中的内容.
但是我仍然很难理解它,特别是突出的声明"所承诺的不是我工作目录中的内容".
到目前为止,在我有限的使用Git的工作,一切都在工作目录始终致力于,如果我这样做:
git add <all new files in the working directory>
git commit -a -m "git will refuse to commit without this comment"
Run Code Online (Sandbox Code Playgroud)
git然后提交所有修改过的文件以及所有新文件.
那么,实际上,我的工作目录是暂存区域?
我不确定git index它是什么以及它如何被解释为临时区域.
你能解释一下吗?
诀窍是:
当您向索引添加(git add)时,您不必立即提交
所以,如果你添加一些超级复杂功能,然后进行改变和......终于彻底打破它,你仍然可以提交,原因是什么在你的指数(您已经添加什么11分钟前才进一步修改失败打破它)不是你工作树里现在的东西(现在已经无可救药地破坏了).
因此,它可以帮助从时间增加时间指数当前的开发工作,知道你可以在任何时候提交您已经索引的最后一个"稳定"状态.
提交的另一种方式不是当你在工作树中时git add --patch:
在索引和工作树之间以交互方式选择补丁,并将它们添加到索引中.
这使用户有机会在将修改后的内容添加到索引之前查看差异.
您可以将当前文件的一部分添加到索引中(就像您正在编写的三个函数之一),然后只提交它.
索引是 git 管理的目录树的副本。最初,它是 HEAD 提交内容的副本。 git add将文件从工作目录复制到索引。 git commit从索引中的内容创建一个新的提交。
索引就像一个缓冲区——它不存储在 git 历史记录中,但对它的访问由 git 控制(与您的工作目录不同,它可以通过多种方式访问)。git 从索引提交,所以提交的是 git 控制的东西。
在您的特定情况下,答案是您正确理解文档,但使用“快捷方式”命令提交整个工作目录。
如果您运行git commit -a -m "Message",那么您的工作目录将被视为暂存区域。有时这很方便,但您会失去按设计使用索引的能力。尝试以下命令:
git commit -m "Message"
Run Code Online (Sandbox Code Playgroud)
如果您这样做,则可以使用暂存区域仅提交对工作目录所做的部分更改。
| 归档时间: |
|
| 查看次数: |
4230 次 |
| 最近记录: |