什么是.git文件夹?

时间:2015-03-23 18:36:46

标签: git

名为.git的文件夹是什么?

它是在存储库中创建的。其中包含什么以及为什么创建?

6 个答案:

答案 0 :(得分:9)

<。> .git文件夹包含项目在版本控制中所需的所有信息以及有关提交,远程存储库地址等的所有信息。所有这些信息都存在于此文件夹中。它还包含一个日志,用于存储您的提交历史记录,以便您可以回滚到历史记录。

有关详情,请查看official website of git

答案 1 :(得分:1)

此说明应有助于初学者了解.git文件夹。

.git文件夹有点像魔术帽,您可以在其中放置当前的魔术表演。

创建新的git信息库(git init)时,将组织成显示格式的所有内容都放在这顶魔术帽中,可以随时随地“拉出”。

拉出所有内容后,您可以在放完节目后丢弃所有内容(即.git文件夹以外的所有文件),并且以后总是可以放出完全相同的节目。 (因为每个新节目都只是帽子内部内容的复制品。)

如果仅向某人发送.git文件夹,他们总是可以将您的项目文件拉入与您放入的文件相同的结构(显示格式)中。

git add告诉.git文件夹可以拉出的内容,例如穿着燕尾服和手杖的兔子(或网站上的单个文件或整个菜单栏)。

git rm告诉.git文件夹停止允许从帽子中拉出某些东西,例如想象一下,如果您不再希望兔子成为您的魔术表演的一部分。 (需要注意的是,如果您确实想要的话,您仍然可以恢复节目的先前版本,其中包括兔子(您在1999年的Comic Sans博客中的版本),但是如果您当前的节目不包含兔子,使用git rm)。

答案 2 :(得分:1)

.git包含版本控制所需的所有信息。

因此,它必须跟踪本地存储库和远程存储库的状态,并提供一种在它们之间进行同步的方式。

下面的示例深入探讨了.git

中与HEAD相关的信息
~/hammer-master/.git (GIT_DIR!)$ ls
COMMIT_EDITMSG  HEAD        config      hooks       info        objects
FETCH_HEAD  ORIG_HEAD   description index       logs        refs
~/hammer-master/.git (GIT_DIR!)$ cat HEAD
ref: refs/heads/master
~/hammer-master/.git (GIT_DIR!)$ cd refs
~/hammer-master/.git/refs (GIT_DIR!)$ ls
heads   remotes tags
~/hammer-master/.git/refs (GIT_DIR!)$ cd heads
~/hammer-master/.git/refs/heads (GIT_DIR!)$ ls
master
~/hammer-master/.git/refs/heads (GIT_DIR!)$ cat master
d63ed592f83f642d42cf59c63a71b44ca93e3ab9

谢谢

答案 3 :(得分:1)

.git文件夹是在执行git init(对于新项目)或执行git clone(对于从项目中拉出项目的情况)创建的目录别的地方)。这就是使您的项目成为“ git”存储库的“事物”。如果没有.git,则您的项目是本地项目,而不是git项目,这意味着您无法执行任何git操作。

git将项目的元数据和对象数据库存储在此目录中,例如:

  1. 远程信息(您的项目连接到哪个远程服务器)
  2. 所有本地提交的历史记录
  3. 分支信息(您当前的项目状态(HEAD)指向哪个分支)
  4. 您曾经进行过的所有本地提交的所有日志(包括还原更改)

要了解更多信息,请查看git的官方文档: https://git-scm.com/book/en/v1/Git-Basics-Getting-a-Git-Repository

答案 4 :(得分:0)

Basiclly,这意味着你的目录由Git(Git存储库)处理。如果你把它移到其他地方(或删除它),你将面临如下:

  

致命:不是git存储库(或任何父目录):。git

每次你在那里使用'git *'命令。

您可以使用以下命令将 .git 目录移动到其他位置:

  

git --git-dir = / myproject_path / myproject.git log --oneline

或者:

  

导出GIT_DIR = / myproject_path / myproject.git

但我不建议这样做。 注意它只是1个文件夹,与SVN不同。

它包含GIT处理代码的所有相关信息,例如HEAD的位置,在提交/推送之前/之后应用的挂钩以及其他一些文件。

也许里面最“着名”的文件是 config 文件,其中包含所有分支信息。

建议阅读here更多信息。

答案 5 :(得分:0)

您的.git目录中的内容

如果您好奇-„-,该资源可能会有所帮助

http://gitready.com/advanced/2009/03/23/whats-inside-your-git-directory.html

基本结构如下:

.
|-- COMMIT_EDITMSG
|-- FETCH_HEAD
|-- HEAD
|-- ORIG_HEAD
|-- branches
|-- config
|-- description
|-- hooks
|   |-- applypatch-msg
|   |-- commit-msg
|   |-- post-commit

... 在site

上继续