登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

她三哥

Tsange

 
 
 

日志

 
 

git仓库初始化  

2012-05-15 10:43:03|  分类: Ubuntu |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

一、git init语法
git init [-q | --quiet] [--bare] [--template=<template_directory>] [--shared[=<permissions>]] [directory]
OPTIONS:
-q, --quiet
    Only print error and warning messages, all other output will be suppressed.

--bare
    Create a bare repository. If GIT_DIR environment is not set, it is set to the current working directory.

--template=<template_directory>
    Specify the directory from which templates will be used. (See the "TEMPLATE DIRECTORY" section below.)

--shared[={false|true|umask|group|all|world|everybody|0xxx}]
    Specify that the git repository is to be shared amongst several users. This allows users belonging to the same group to push into that repository. When specified, the config variable "core.sharedRepository" is set so that files and directories under $GIT_DIR are created with the requested permissions. When not specified, git will use permissions reported by umask(2).

DESCRIPTION:
This command creates an empty git repository - basically a .git directory with subdirectories for objects, refs/heads, refs/tags, and template files. An initial HEAD file that references the HEAD of the master branch is also created.
If the $GIT_DIR environment variable is set then it specifies a path to use instead of ./.git for the base of the repository.
If the object storage directory is specified via the $GIT_OBJECT_DIRECTORY environment variable then the sha1 directories are created underneath - otherwise the default $GIT_DIR/objects directory is used.
Running git init in an existing repository is safe. It will not overwrite things that are already there. The primary reason for rerunning git init is to pick up newly added templates.
注意:that git init is the same as git init-db.

TEMPLATE DIRECTORY:
The template directory contains files and directories that will be copied to the $GIT_DIR after it is created.
The template directory used will (in order):
·The argument given with the --template option.
·The contents of the $GIT_TEMPLATE_DIR environment variable.
·The init.templatedir configuration variable.
·The default template directory: /usr/share/git-core/templates.
二、git init说明
使用命令"git init"初始化的版本库(暂且称为working repository)将会生成两类文件:第一类是版本库目录.git目录,它里面存放的是版本的历史记录信息和实际项目文件的拷贝;你可以把这类版本库叫做"工作目录"(working tree);工作目录是一个包含有版本历史目录".git"和项目源文件的目录;你可以在工作目录中修改你的项目源文件并使用命令"git add"和"git commit"进行版本管理;
例如:
zxk@server:~/test$ mkdir repo
zxk@server:~/test$ cd repo
zxk@server:~/test/repo$ git init
Initialized empty Git repository in /home/zxk/test/repo/.git/
zxk@server:~/test/repo$ ls -lta
总计 12
drwxr-xr-x 3 zxk zxk 4096 2012-05-15 11:07 .
drwxr-xr-x 7 zxk zxk 4096 2012-05-15 11:07 .git
drwxr-xr-x 3 zxk zxk 4096 2012-05-15 11:07 ..
zxk@server:~/test/repo$ cd .git/
zxk@server:~/test/repo/.git$ ls -lta
总计 40
drwxr-xr-x 7 zxk zxk 4096 2012-05-15 11:07 .
drwxr-xr-x 3 zxk zxk 4096 2012-05-15 11:07 ..
drwxr-xr-x 2 zxk zxk 4096 2012-05-15 11:07 branches
-rw-r--r-- 1 zxk zxk   92 2012-05-15 11:07 config
-rw-r--r-- 1 zxk zxk   73 2012-05-15 11:07 description
-rw-r--r-- 1 zxk zxk   23 2012-05-15 11:07 HEAD
drwxr-xr-x 2 zxk zxk 4096 2012-05-15 11:07 hooks
drwxr-xr-x 2 zxk zxk 4096 2012-05-15 11:07 info
drwxr-xr-x 4 zxk zxk 4096 2012-05-15 11:07 objects
drwxr-xr-x 4 zxk zxk 4096 2012-05-15 11:07 refs
该例子中,初始化的版本库包含记录版本库历史记录文件的目录.git和实际项目的源文件(但是实际项目里面没有源文件);因此,该版本库的根目录repo/就是该版本库的工作目录(working tree),而.git/目录不是工作目录;
注意:
1、使用命令"git clone"从一个现有的版本库克隆出来的新版本库也是一个工作目录(working tree),包含.git目录和实际项目源文件;
2、如果使用命令"git init"初始化版本库,则远程版本库目录下也包含工作目录(working tree),当本地版本库向远程版本库push时,如果远程版本库当前成处于要被push的分支上,那么push后的结果不会反映在远程版本库的工作目录(working tree)上,也即:在远程版本库的目录下对应的文件还是之前的旧内容,必须使用命令"git reset --hard"之后才能看到push后的新内容,或者是登陆到远程版本库目录下,使用命令"git config --bool core.bare true"把版本库的核心属性修改成bare的类型;

三、git init --bare
使用命令"git init --bare"(bare汉语意思是:裸,裸的)初始化的版本库(暂且称为bare repository)只会生成一类文件:用于记录版本库历史记录的.git目录下面的文件;而不会包含实际项目源文件的拷贝;所以该版本库不能称为工作目录(working tree);如果你进入版本目录,就会发现只有.git目录下的文件,而没有其它文件;就是说,这个版本库里面的文件都是.git目录下面的文件,把原本在.git目录里面的文件放在版本库的根目录下面;换句话说,不使用--bare选项时,就会生成.git目录以及其下的版本历史记录文件,这些版本历史记录文件就存放在.git目录下;而使用--bare选项时,不再生成.git目录,而是只生成.git目录下面的版本历史记录文件,这些版本历史记录文件也不再存放在.git目录下面,而是直接存放在版本库的根目录下面;
例如:
zxk@server:~/test$ mkdir repo_bare
zxk@server:~/test$ cd repo_bare/
zxk@server:~/test/repo_bare$ git init --bare
Initialized empty Git repository in /home/zxk/test/repo_bare/
zxk@server:~/test/repo_bare$ ls -lta
总计 40
drwxr-xr-x 7 zxk zxk 4096 2012-05-15 10:12 .
drwxr-xr-x 5 zxk zxk 4096 2012-05-15 10:12 ..
drwxr-xr-x 2 zxk zxk 4096 2012-05-15 10:12 branches
-rw-r--r-- 1 zxk zxk   66 2012-05-15 10:12 config
-rw-r--r-- 1 zxk zxk   73 2012-05-15 10:12 description
-rw-r--r-- 1 zxk zxk   23 2012-05-15 10:12 HEAD
drwxr-xr-x 2 zxk zxk 4096 2012-05-15 10:12 hooks
drwxr-xr-x 2 zxk zxk 4096 2012-05-15 10:12 info
drwxr-xr-x 4 zxk zxk 4096 2012-05-15 10:12 objects
drwxr-xr-x 4 zxk zxk 4096 2012-05-15 10:12 refs
该例子中,版本库的根目录是repo_bare,该根目录下面的文件原本都应该在repo_bare/.git/目录下面的,但是在初始化时使用了--bare选项,所以就把记录版本库历史记录的文件都放在了版本库的根目录repo_bare/下面了;由于使用了--bare参数,把原本应该存放在历史记录目录repo_bare/.git/下的文件存放在了版本库的根目录repo_bare/下,因此,该版本库不是工作目录(working tree),只包含版本历史记录文件,而不包含实际项目的源文件;
注意:
这些都是使用--bare选项之后的默认操作;如果设定环境变GIT_DIR(or --git-dir=<path>)指向某个目录,那么使用--bare选项时,版本库的版本历史记录文件就会存放在这个指定的目录下面;这样的话,就把版本历史记录文件与项目的实际源文件分开管理了;
环境变量GIT_DIR用于指定版本历史记录文件所存放的位,GIT_WORK_TREE(or --work-tree=<path>)用于指定工作目录(working tree)的位置;
例如:
zxk@server:~/test$ mkdir repo_env
zxk@server:~/test$ cd repo_env/
zxk@server:~/test/repo_env$ export GIT_DIR=./git
zxk@server:~/test/repo_env$ git init --bare
Initialized empty Git repository in /home/zxk/test/repo_env/git/
zxk@server:~/test/repo_env$ ls -lta
总计 12
drwxr-xr-x 3 zxk zxk 4096 2012-05-15 11:03 .
drwxr-xr-x 3 zxk zxk 4096 2012-05-15 11:02 ..
drwxr-xr-x 7 zxk zxk 4096 2012-05-15 11:03 git
zxk@server:~/test/repo_env$ cd git
zxk@server:~/test/repo_env/git$ ls -lta
总计 40
drwxr-xr-x 7 zxk zxk 4096 2012-05-15 11:03 .
drwxr-xr-x 3 zxk zxk 4096 2012-05-15 11:03 ..
drwxr-xr-x 2 zxk zxk 4096 2012-05-15 11:03 branches
-rw-r--r-- 1 zxk zxk   66 2012-05-15 11:03 config
-rw-r--r-- 1 zxk zxk   73 2012-05-15 11:03 description
-rw-r--r-- 1 zxk zxk   23 2012-05-15 11:03 HEAD
drwxr-xr-x 2 zxk zxk 4096 2012-05-15 11:03 hooks
drwxr-xr-x 2 zxk zxk 4096 2012-05-15 11:03 info
drwxr-xr-x 4 zxk zxk 4096 2012-05-15 11:03 objects
drwxr-xr-x 4 zxk zxk 4096 2012-05-15 11:03 refs
注意比较目录结构的不同;

  评论这张
 
阅读(16735)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018