github - git init 和 git init --bare 的区别?

查看:156
本文介绍了github - git init 和 git init --bare 的区别?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

找了很久没有找到相关的资料,请问,git init 和 git init --bare 的区别大概是什么呢?

解决方案

在本文中我将:

  1. 使用普通库代指用"git init"命令创建的GIT库;

  2. 使用裸库代指用"git init --bare"命令创建的GIT库;

当你创建一个普通库时,在工作目录下,除了.git目录之外,你还可以看到库中所包含的所有源文件。你拥有了一个可以进行浏览和修改(add, commit, delete等)的本地库。
当你创建一个裸库时,在工作目录下,只有一个.git目录,而没有类似于本地库那样的文件结构可供你直接进行浏览和修改。但是你仍旧可以用git show命令来进行浏览,举个例子(参数为某个commit的SHA1值):

# git show 921dc435a3acd46e48e3d1e54880da62dac18fe0

一般来说,一个裸库往往被创建用于作为大家一起工作的共享库,每一个人都可以往里面push自己的本地修改。一个惯用的命名方式是在库名后加上.git,举个例子:

# mkdir example.git
# cd example.git
# git init --bare .

这样你便拥有了一个叫做example的共享库。在你自己的本地机器上,你可以用git remote add命令做初始化check-in:

// assume there're some initial files you want to push to the bare repo you just created,
// which are placed under example directory
# cd example
# git init
# git add *
# git commit -m "My initial commit message"
# git remote add origin git@example.com:example.git
# git push -u origin master

项目团队里面的每个人都可以clone这个库,然后完成本地修改之后,往这个库中push自己的代码。

# git clone git@example.com:example.git
# cd example

参考:

  1. 普通库与裸库的区别:http://stackoverflow.com/questions/78611...

  2. 该如何使用一个裸库:http://stackoverflow.com/questions/76324...

  3. 什么是GIT裸库:http://www.saintsjd.com/2011/01/what-is-...

  4. 如何设置一个远程共享库并进行团队协作:http://thelucid.com/2008/12/02/git-setti...

  5. git remote add与git clone的区别:http://stackoverflow.com/questions/48555...

这篇关于github - git init 和 git init --bare 的区别?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆