Git|Git 使用篇二(搭建远程服务器)

一般做一个私人的项目,不希望开源的,是不会放在GitHub上的,这个时候我们需要建里一个自己的Git远程服务器,方便小组成员开发。
这里以Centos云服务器为例:
第一步
如果自己的服务器没有git账号,可以先配置一个git账号(当然不用git账号也可以)

$ sudo useradd git $ sudo passwd git 123456 //设置git账号的密码

第二步
创建一个git仓库
$ mkdir /git $ cd /git $ git init --bare test.git

这里要说一下,git init 和git init –bare 的区别:
git init 创建的仓库下 test目录是这样子的
Git|Git 使用篇二(搭建远程服务器)
文章图片

而使用 git init –bare 创建的仓库test2目录是这样子的
Git|Git 使用篇二(搭建远程服务器)
文章图片

可以看到,git init 是多一个.git 文件夹,而git所有的文件都是.git文件夹下,而git init
–bare 则是将git的文件直接放在仓库根目录下。
所以git init –bare 创建的仓库是裸仓库,没有项目的源文件,只有git的文件,这个仓库test 是不能执行git的命令,没有git add ,git commit 等等。你也无法修改编辑项目的文件。所以他只是一个共享的储存空间而已。
而git init 创建的普通仓库,里面是有项目源文件的
Git|Git 使用篇二(搭建远程服务器)
文章图片

index.txt, hhh 等等都是你的项目文件。所以git init 创建的普通仓库是有工作空间的,就是work-tree ,而git init –bare是没有工作空间的。
这里还要注意,我们一般使用git init –bare 比较好,git init 有两点不好:
1.因为使用git init 创建的仓库是可以用git操作的嘛,如果当前master正在被用户操作,那么分支如果 git push master:master 那么就会爆炸,上传不上去。master不能同时被两个人操作,对吧。
2.分支push到远程仓库之后,我们在仓库里是没有办法看到最新的内容的,必须要
git reset --hard

执行这个命令,在仓库的目录下,也就是工作区,才会更新,看到最新修改的内容。
git reset –hard 是撤回到历史版本,本地源码会变成上一个版本的内容。每次更新都要
执行。
**在用git init 创建的仓库的时候,你git push 会遇到
! [remote rejected] master -> master (branch is currently checked out)**
需要运行
git config receive.denycurrentbranch ignore

这个是允许接受远程文件。
有时候push不上去,是因为文件夹没有权限,需要chomd 7777 文件夹
好了回到正题:
第三步
创建git用户
$ sudo chown -R git:git test.git

这里说明一下,为什么要创建git用户,因为在远程分支,你是用git账号进行提交的,如果你的仓库文件的用户不是git的话,是root用户或者别的用户,那么你git push ,它是不允许的,因为你的git用户没有权限。你可以给这个文件创立git用户,或者修改文件夹的权限为所有用户都可以更改
第四步
我们就可以远程,直接git clone了。
git clone git@139.196.126.76:/git/test.git

然后就可以上传文件,下载文件啦。
搭建完Git远程服务器,那小组成员一般是怎么用Git开发的呢?
下一篇会作介绍:
http://blog.csdn.net/Dacc123/article/details/78112166
【Git|Git 使用篇二(搭建远程服务器)】转载于:https://www.cnblogs.com/dacc123/p/8228512.html

    推荐阅读