Git 创建仓库

来源:互联网 发布:服务器安装centos系统 编辑:程序博客网 时间:2024/06/17 11:32

Git 创建仓库

本章节我们将为大家介绍如何创建一个 Git 仓库。
你可以使用一个已经存在的目录作为Git仓库。

两台机器:A 192.168.1.123 B 192.168.1.124
A上建Git仓库,B上去访问并且提交代码

james_xie@np-svr-file:~$ pwd/home/james_xie
mkdir openvpn.git
cd openvpn.git/
git init -bare

注意上面创建仓库的时候是带”-bare”参数的,带不带这个参数的区别,下面会给出。这里创建的是所谓的裸仓库,是因为这个仓库只保存git历史提交的版本信息,而不允许用户在上面进行各种git操作,如果你硬要操作的话,只会得到下面的错误(”This operation must be run in a work tree”)

B:Host 192.168.1.124

git clone ssh://192.168.1.123/home/james_xie/openvpn.git
cd openvpn/

这下一步之前,添加一些代码,或者要上传的文件openvpn的目录下面

git add .
git commit -m "first commit"
git push -u origin master 

或者之前简写为:

git push

创建Git仓库带不带“-bare”参数的区别:

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

如果使用了git init初始化,则远程仓库的目录下,也包含work tree,当本地仓库向远程仓库push时, 如果远程仓库正在push的分支上(如果当时不在push的分支,就没有问题), 那么push后的结果不会反应在work tree上, 也即在远程仓库的目录下对应的文件还是之前的内容,必须得使用git reset –hard才能看到push后的内容。我一般都是按照上面步骤,直接创建“裸库”,再添加代码。