- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在努力更好地理解 git 的工作原理。
因此我们有一个工作目录(我们的项目文件)、一个暂存区(准备好进行的更改的集合)和一个 git 存储库(提交时应用这些更改的地方)。
但是我很难理解,因为似乎文件被“跟踪”或没有提到某些特定的东西,但我们仍然说每个部分都有自己的跟踪形式?
这样说对吗:
如果我在工作目录中添加或修改文件,git 会检测到所有这些。我们是否说这些文件此时被 git “跟踪”了?或者它们只是“检测到”(或其他)?项目文件夹/工作目录中的所有内容都被“跟踪”了吗?
git add {directory or filename}
似乎将内容添加到暂存区,是吗?在这一点上,我们是否说所有暂存文件都是“跟踪”文件,当我们执行 git ls-files
时出现的文件,我相信它显示了暂存区域中的文件?或者没有?
git commit -a
将暂存区中的所有更改移动到存储库。
这是正确的吗?
最佳答案
- If I add or modify a file in my working directory, git detects all of this. Do we say that these files become "tracked" by git at this point? Or are they merely "detected" (or something else)? Is everything in the project folder / working directory "tracked"?
Git 检测修改和删除的文件。如果它们被跟踪(即它们之前添加并提交),它们将在 git status
的输出中显示为“已修改”。未跟踪的新文件和修改后的文件显示为“未跟踪”。
git add {directory or filename}
appears to add the contents to the staging area, yes? At this point do we say all staged files are "tracked" files, the ones that show up when we dogit ls-files
, which I believe shows the files in the staging area? Or no?
暂存区用于准备下一次提交。你可以说它包含的文件是“被跟踪的”,但它的内容不是永久的;它可以随时更改。为了让 Git 真正“跟踪”一个新文件,您必须提交阶段性更改。
git commit -a
moves all the changes in the staging area to the repository.
git commit
使用暂存内容创建新提交。 git commit -a
自动暂存被更改或删除的跟踪文件,然后运行提交。未添加新文件。
阅读更多关于 git commit
的信息以及如何Git records the changes to the repository .
关于git - git add 和 git commit -a 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45289924/
我正在寻找一种方法来编写 Signed-off-by:当我提交时自动标记。 我尝试通过 .git/config 文件配置它 (Reference) .我把这些代码行: [alias] comm
我使用的是 visual studio 2013,在提交 C# 代码时我面临 3 个选项。我需要解释每个选项之间关于我的本地存储库与 GitHub 存储库发生的情况的差异。 选项 1 表示提交 选项
我刚从 classes12.jar 升级到新的 jdbc 驱动程序到 ojdbc7.jar 我的应用在使用 ojdbc7.jar 运行时抛出异常: java.sql.SQLException: Cou
我问的是 Oracle SQL*PLUS ... 最佳答案 没有 :-) Oracle says The WORK keyword is supported for compliance with s
我必须在许多分支、许多存储库上恢复对文件所做的更改。我知道我可以使用 git checkout 哈希文件名,然后推送该更改。 问题是,我只知道在我想要恢复的实际提交之前有两次提交。 我怎样才能在这之前
看起来很简单,但我就是不明白。我在我的应用程序的根目录中。 这是我的工作流程。 git add . git commit -m "added a new feature some files chan
假设我有一个 git 分支,在共享它之前的最后审查中,我发现了一些小错误,例如拼写错误。我想做的是将那个补丁应用为“修复”,但它实际上会影响许多提交,因此在最终历史记录中没有错误的迹象。 也就是说,如
当我运行hg commit时,Mercurial会为我的提交消息生成一个文件,如下所示: HG: Enter commit message. Lines beginning with 'HG:' a
我已经为项目创建了一个新的存储库,并向其中添加了一些现有的代码库 (llvm)。该代码库大约有 18,000 个文件,这使得我的初始提交花费了大量时间。 (阅读5小时) 有没有办法将这个巨大的提交分成
我在 git review 上得到以下内容: git review You are about to submit multiple commits. This is expected if you
我一直在寻找一种替代解决方案来压缩分支中的一系列提交。我过去所做的是使用 git rebase -i HEAD~然后选择哪个 promise 进行压缩。通常我 pick编辑最新的提交,并压缩其间的冗余
把玩Git和GitHub,我发现有时候一个 git commit -a 需要提交修改过的文件。 (此文件已添加到项目中)。 但有时候,只是一个 git commit 会起作用。如果使用 Mercuri
我正在努力思考 Git 的复杂性。 我使用“git clone [url here]”从 GitHub 下载了一个存储库。 我做了一些更改,尝试使用“git commit”提交它们。这似乎没有将更改推
当试图恢复到之前的提交时,我尝试了: git revert --no-commit 0766c053..HEAD 然而这给出了一个错误: empty commit set passed 问题错误是什么
我的存储库的历史非常复杂。我经常发现自己想知道过去的某个提交是“在”还是“可从”某个修订版(通常是我的一个头脑)“进入”或“可访问” 我该怎么做呢? 最佳答案 您可以使用 revsets syntax
我有:http://windows.github.com/ 我当前的项目有大约 20k 个文件,大约 150MB(并且不说它有多慢而且我现在什么也做不了)它甚至不允许我提交!我收到此错误:提交失败:无
我正在运行 postgres 9.2 服务器并有一个使用 psycopg 2.5 的 python 客户端。 我进行了一些测试,因为我在日志文件中遇到了很多警告:没有正在进行的事务条目。 我有一些代码
我的主要问题是总是执行 git commit -am 而不是 git add 是否有意义。然后是 git commit -m? 我知道 -am 表示它将添加修改后的 TRACKED 文件的所有更改。所
如果我想查看 之间的差异和工作目录 (WD),我运行 % git diff 这通常会做我想做的事,但如果 WD 包含在 时被跟踪的文件,它就会这样做。已创建,但现在(或在当前分支中)未被跟踪,则
我正在阅读有关 git 对象的信息:blob、树、提交、标签。为了更好地理解 git 的工作原理,我尝试了一些低级命令,如 write-tree 和 commit-tree。 mkdir 测试; cd
我是一名优秀的程序员,十分优秀!