副问题[/!--empirenews.page--]
【新品产上线啦】51CTO播客,随时随地,碎片化进修
git的界说是一个内容寻址文件体系。内容、寻址、文件、体系,该来的总会来的…
本文旨在通过实践来先容.git文件夹中的目次及文件成果,属git基本常识。但在此基本上可办理各git行使进程中也许碰着的题目,如“.git文件夹占用空间大”,“git怎样找回丢失的工具(提交)”,”git diff 比拟依据是什么”等,
话不多说,撸起袖子就是干,来看看 .git 是个啥样,这些个货色都是干嘛的。
- # 初始化git,查察内容
- git init 发生一个.git潜匿文件夹
- cd .git
- ls -F1
- # 初始化时的.git长这样
- # HEAD
- # config
- # description
- # hooks/
- # info/
- # objects/
- # refs/
- # 一般事变中的.git或许长这样
- # COMMIT_EDITMSG
- # config
- # description
- # hooks/
- # index
- # info/
- # logs/
- # objects/
- # refs/
跟着之后的多种 git操纵 ,还会存在如 MERGE_HEAD 、 MERGE_MODE等和 COMMIT_EDITMSG 相同成果的文件,branches(分支信息)、lost-found(存储被悬挂起/丢失的提交工具)、packed-refs(压缩后的refs记录)等和logs、objects相同成果的文件夹。
以上面的.git为例做个简朴的先容:
COMMIT_EDITMSG 最近一次的 commit edit message ;
- # 编写提交信息的两种姿势
- git commit
- # 自动打开文件编辑,在文件中输入信息即可
- git commit -m msg
- # 信息城市被生涯到 COMMIT_EDITMSG
- # 如需修改提交信息,不行直接编辑COMMIT_EDITMSG,可执行以下呼吁
- git commit --amend
- # 自动打开文件编辑,在文件中修改信息即可
description 描写文件,打开后内里提示该为git客栈建设个描写(Unnamed repository; edit this file ‘description’ to name the repository.)。
config 文件包括项目特有的设置选项,如一些常用项:
- [core] ignorecase 是否忽略文件巨细写;
- [remote "origin"] url 设置长途客栈地点;
- [remote "origin"] fetch 长途分支映射相关;
- [user] name 用户名
- [user] email 邮箱
- [alias] 呼吁别名设置 : cmt = commit
抑或更多其他config参数…
全局设置文件在 ~/.gitconfig ,Windows应该是在Users/Administrator/.gitconfig。
info/ 文件夹用以存储一些有关git客栈的信息,如exclude
- # 包括一个全局性解除(global exclude)文件,用以安排那些不但愿被记录在 .gitignore 文件中的忽略模式(ignored patterns);
- echo for git ignore > git-ignore
- echo for git exclude > git-exclude
- echo git-ignore > .gitignore
- git status
-
- # On branch test
- # Untracked files:
- # (use "git add <file>..." to include in what will be committed)
-
- # .gitignore
- # git-exclude
-
- # git-ignore已被忽略,尚有2个untracked的文件
-
- cd .git
- cd info/
- vi exclude
-
- # 最后一行新增 git-exclude
-
- cd ../..
- git status
- # On branch test
- # Untracked files:
- # (use "git add <file>..." to include in what will be committed)
-
- # .gitignore
-
- # git-exclude 已被忽略,只有.gitignore照旧untracked
除exclude文件外,还也许会有refs、grafts,attributes等文件
hooks/ 文件夹包括客户端或处事端的钩子剧本(hook scripts),如pre-commit,post-receive等:
- vi .git/hooks/pre-commit
- # 生涯以下信息 第一行指定用什么执行
- #!/bin/sh
- echo "Message for pre commit";
- exit 1;
- # 开执行权限
- chmod +x .git/hooks/pre-commit # user+group+other 执行x(1)权限 ,备注 r(4,read),w(2,write),x(1,execute),-(0,no permission),s(special)
-
- touch commit-hook-test
- git add .
- git commit -m “pre-commit test“
- # 你会看到以下信息
- # Message for pre commit
-
- # 假如不exit,则继承执行,详情可参考.git/hooks/下的*.sample文件
- # Message for pre commit
- # [test 038e6ec] pre-commit test
- # 1 file changed, 1 insertion(+), 1 deletion(-)
logs/ 安排git客栈操纵记录的文件夹,包括HEAD文件 和 refs文件夹。
(编辑:河北网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|