概述
Git目录、工作目录、索引
- Git目录
- 工作目录
- Git索引
Git目录
Git目录一般就是指项目根目录下的’.git’目录,是为你的项目存储所有历史和元信息的目录。
包括所有的对象(commits,trees,blobs,tags), 这些对象指向不同的分支.
每一个项目只能有一个Git目录(这和SVN,CVS的每个子目录中都有此类目录相反),这个叫.git
的目录在你项目的根目录下(这是默认设置,但并不是必须的). 如果你查看这个目录的内容, 你可以看所有的重要文件:
$>tree -L 1
.
|-- HEAD
# 这个git项目当前处在哪个分支里
|-- config
# 项目的配置信息,git config命令会改动它
|-- description
# 项目的描述信息
|-- hooks/
# 系统默认钩子脚本目录
|-- index
# 索引文件
|-- logs/
# 各个refs的历史信息
|-- objects/
# Git本地仓库的所有对象 (commits, trees, blobs, tags)
`-- refs/
# 标识你项目里的每个分支指向了哪个提交(commit)。
工作目录
Git的工作目录存储着你现在签出(checkout)来用来编辑的文件. 当你在项目的不同分支间切换时, 工作目录里的文件经常会被替换和删除. 所有历史信息都保存在Git目录中 ;工作目录只用来临时保存签出(checkout) 文件的地方, 你可以编辑工作目录的文件直到下次提交(commit)为止.
Git索引
Git索引是一个在你的工作目录和项目仓库间的暂存区(staging area). 有了它, 你可以把许多内容的修改一起提交(commit). 如果你创建了一个提交(commit), 那么提交的是当前索引(index)里的内容, 而不是工作目录中的内容.
使用 git status
命令是查看索引内容的最简单办法. 你运行 git status
命令, 就可以看到: 哪些文件被暂存了(就是在你的Git索引中), 哪些文件被修改了但是没有暂存, 还有哪些文件没有被跟踪(untracked).
$>git status
# On branch master
# Your branch is behind 'origin/master' by 11 commits, and can be fast-forwarded.
#
# Changes to be committed:
#
(use "git reset HEAD <file>..." to unstage)
#
#
modified:
daemon.c
#
# Changed but not updated:
#
(use "git add <file>..." to update what will be committed)
#
#
modified:
grep.c
#
modified:
grep.h
#
# Untracked files:
#
(use "git add <file>..." to include in what will be committed)
#
#
blametree
#
blametree-init
#
git-gui/git-citool
如果完全掌握了索引(index), 你就一般不会丢失任何信息, 只要你记得名字描述信息(name of the tree that it described)就能把它们找回来.
最后
以上就是大胆乐曲为你收集整理的Git目录、工作目录、索引Git目录工作目录Git索引的全部内容,希望文章能够帮你解决Git目录、工作目录、索引Git目录工作目录Git索引所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复