什么是名为 .git 的文件夹?它是在仓库中创建的,里面包含什么,为什么要创建它?
u5rb5r591#
文件夹 .git 由git init初始化。
git init
四个子目录:
exclude
四个文件:
这里的“对象”包括:
omtl5h9j2#
有关更多信息,您可以查看official website of Git。
js4nwp543#
这个解释应该可以帮助初学者理解 .git 文件夹。
当你创建一个新的Git仓库(git init)时,你组织成show格式的所有东西都放在这个魔法帽子里,你可以随时随地“拉出来”。把所有东西都拿出来之后,你可以在看完这个节目之后把所有东西都扔掉(也就是说,除了.git文件夹之外的所有文件),你可以在以后的日子里把完全相同的节目拿出来。(因为每个新节目都只是帽子里内容的克隆。)如果你只给某人发送.git文件夹,他们总是可以把你的项目文件拉到你放进去的同一个结构中(显示格式)。git add告诉 .git 文件夹什么可以被拉出,例如,一只穿着燕尾服拿着手杖的兔子(或者你网站上的单个文件或整个菜单栏)。git rm告诉 .git 文件夹停止允许从帽子中取出一些东西,例如,想象一下,如果你不再想让兔子成为你魔术表演的一部分。(重要的是要注意,你仍然可以恢复以前版本的节目,其中将包括兔子(你的1999年版本的博客与Comic Sans),如果你真的想,但是如果你使用git rm,你当前的节目将不包括兔子)。
.git
git add
git rm
e5nszbig4#
这是使你的项目成为Git仓库的“东西”。.git 文件夹是当你执行git init(如果是一个新项目)或git clone(如果是从其他地方拉取一个项目)时创建的目录。没有 .git,你的项目是一个本地项目而不是Git项目,这意味着你不能执行任何git操作。Git将项目的元数据和对象数据库存储在这个目录中,如下所示:1.远程信息(项目连接到的远程服务器)1.所有本地提交的历史记录1.分支信息(当前项目状态(HEAD)指向哪个分支)1.你曾经进行的所有本地提交的所有日志(包括恢复更改)要了解更多信息,请查看Git主页上的官方文档:2.1 Git Basics - Getting a Git Repository
git clone
56lgkhnf5#
基本上,这意味着你的目录是由Git(Git仓库)处理的。fatal:不是git仓库(或任何父目录):.git每次你使用'git '命令。您可以使用以下命令将*.git**目录移动到其他位置:
git --git-dir=/myproject_path/myproject.git log --oneline
字符串或者:
export GIT_DIR=/myproject_path/myproject.git
型但我不建议这样做。注意,它只是一个文件夹,不像SVN。它保存了Git处理代码的所有相关信息,比如 HEAD 的位置,提交/推送之前/之后应用的钩子以及其他一些文件。也许里面最“著名”的文件是配置文件,它保存了你所有的分支信息。我建议阅读here更多信息。
eqzww0vc6#
从技术上讲,.git目录是Git仓库本身。仓库的所有内容,包括所有文件版本,标签,分支等,都分布在这个目录下的文件中。.git外部的内容包括 * 工作目录 *,这是一个可选的适应性设置,可以让Git仓库更容易地工作。默认情况下,工作目录反映了本地仓库的最新提交,但您可以将工作目录树切换到仓库中的不同提交,并在进行新提交之前修改/创建/删除工作目录中的文件。如果没有工作树,你仍然可以有一个 * 裸 * Git仓库-它只包含 * .git目录(在这个场景中通常命名为<something>.git),没有其他东西。除了在Git服务器上,它不常用。
<something>.git
ijnw1ujt7#
7条答案
按热度按时间u5rb5r591#
文件夹 .git 由
git init
初始化。四个子目录:
exclude
文件,用于忽略的模式四个文件:
这里的“对象”包括:
omtl5h9j2#
有关更多信息,您可以查看official website of Git。
js4nwp543#
这个解释应该可以帮助初学者理解 .git 文件夹。
当你创建一个新的Git仓库(
git init
)时,你组织成show格式的所有东西都放在这个魔法帽子里,你可以随时随地“拉出来”。把所有东西都拿出来之后,你可以在看完这个节目之后把所有东西都扔掉(也就是说,除了
.git
文件夹之外的所有文件),你可以在以后的日子里把完全相同的节目拿出来。(因为每个新节目都只是帽子里内容的克隆。)如果你只给某人发送
.git
文件夹,他们总是可以把你的项目文件拉到你放进去的同一个结构中(显示格式)。git add
告诉 .git 文件夹什么可以被拉出,例如,一只穿着燕尾服拿着手杖的兔子(或者你网站上的单个文件或整个菜单栏)。git rm
告诉 .git 文件夹停止允许从帽子中取出一些东西,例如,想象一下,如果你不再想让兔子成为你魔术表演的一部分。(重要的是要注意,你仍然可以恢复以前版本的节目,其中将包括兔子(你的1999年版本的博客与Comic Sans),如果你真的想,但是如果你使用git rm
,你当前的节目将不包括兔子)。e5nszbig4#
这是使你的项目成为Git仓库的“东西”。.git 文件夹是当你执行
git init
(如果是一个新项目)或git clone
(如果是从其他地方拉取一个项目)时创建的目录。没有 .git,你的项目是一个本地项目而不是Git项目,这意味着你不能执行任何git操作。Git将项目的元数据和对象数据库存储在这个目录中,如下所示:
1.远程信息(项目连接到的远程服务器)
1.所有本地提交的历史记录
1.分支信息(当前项目状态(HEAD)指向哪个分支)
1.你曾经进行的所有本地提交的所有日志(包括恢复更改)
要了解更多信息,请查看Git主页上的官方文档:2.1 Git Basics - Getting a Git Repository
56lgkhnf5#
基本上,这意味着你的目录是由Git(Git仓库)处理的。
fatal:不是git仓库(或任何父目录):.git
每次你使用'git '命令。
您可以使用以下命令将*.git**目录移动到其他位置:
字符串
或者:
型
但我不建议这样做。注意,它只是一个文件夹,不像SVN。
它保存了Git处理代码的所有相关信息,比如 HEAD 的位置,提交/推送之前/之后应用的钩子以及其他一些文件。
也许里面最“著名”的文件是配置文件,它保存了你所有的分支信息。
我建议阅读here更多信息。
eqzww0vc6#
从技术上讲,
.git
目录是Git仓库本身。仓库的所有内容,包括所有文件版本,标签,分支等,都分布在这个目录下的文件中。.git
外部的内容包括 * 工作目录 *,这是一个可选的适应性设置,可以让Git仓库更容易地工作。默认情况下,工作目录反映了本地仓库的最新提交,但您可以将工作目录树切换到仓库中的不同提交,并在进行新提交之前修改/创建/删除工作目录中的文件。如果没有工作树,你仍然可以有一个 * 裸 * Git仓库-它只包含 *
.git
目录(在这个场景中通常命名为<something>.git
),没有其他东西。除了在Git服务器上,它不常用。ijnw1ujt7#