centos 7.2 上建立自己的git仓库

1、安装git

      centos上会自带git ,你可以卸载安装最新的git    yum install git

2、建立一个git用户和对应的用户组

   sudo adduser git   ( 可以是别的名字 )
      建立一个centos的用户,名字叫git  同时会自动生成一个对应的用户组。
      其本来就存在很多用户,默认是在root用户下。通过使用 su git 命令可以切换用户。
      存在根目录中的etc文件夹下面 使用vim打开    
      用户列表文件:/etc/passwd
      用户组列表文件:/etc/group
      永久性删除用户账号    userdel git 同时会删除对应的用户组

注意: su git 切换用户 然后输入passwd 命令,会提示你修改密码。这个密码会在你pull和push的时候会用到,密码需要复杂性,不用管输入12345都可以通过。
注意2: 网上这样说的,具体怎样没有测试
$ vim /etc/passwd
找到类似于 git:x:1001:1001:,,,:/home/git:/bin/bash
这样的行,你看到那个末尾的/bin/bash,就是允许ssh连接操作的权限,我们把它改为/user/bin/git-shell,结果如下:
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
这样处理好,git就不能ssh连上去了(实际上是可以的,只不过会闪退)。

3、建立对应的文件和目录

    在建立用户使用adduser的时候会自动在 /home下面出现一个git文件夹。
    在git文件夹下面建立.ssh文件夹并进入在建立authorized_keys文件。
    在根目录中运行 ssh-keygen 会出现提示,按照提示走,输入名字和密码
    可以得到公钥和秘钥。打开公钥,讲内容复制到authorized_keys文件中。

4、设置权限

    chown 700  .ssh
    chown 600 authorized_keys

注意: .ssh 是不可见的文件,也就是ls命令显示不出来,通过ls -a可以显示,cd .ssh可以进入文件夹

5 、初始化git仓库

   为了方便,直接在git目录下面建立一个文件夹 project用来存放git的相关文件。
    通过mkdir project  建立project文件夹 
    cd project 进入文件夹 在建立一个test文件
    通过命令 git init --bare first.git 建立一个仓库,会显示初始化成功。

注意:你需要保证你的project和其子文件和文件夹可读可写,写必须是git用户下的。查看文件权限的命令 ll 或者ll -s。
修改文件夹权限的命令

chown -R jay:fefjay my #修改文件所属用户为jay,所属用户组为fefjay
递归修改文件夹my及包含的所有子文件(夹)的所属用户(jay)和用户组(fefjay):
      https://www.cnblogs.com/fefjay/p/6047820.html

6、clone

      git clone [email protected]:/home/project/test/first.git
      这时候你实际上是可以在本地clone 下来git和相应的文件的,而且你也可以push,
   但是在服务器上并不能找到你push上去的文件,因为通过 --bare命令建立的仓库是裸仓库。
   这类仓库只保存git的记录信息和历史提交记录没有工作目录,也就是没有源文件。

所以我们需要使用 git init 来初始化一个仓库,这样建立的仓库可以存放code
git clone 名字@ip:/home/git/project/test2

还需要注意一点的就是,当你在本地push的时候,会出现一个checkout的问题,就是你需要在服务器上建立一个新的branch 默认是master 我们可以建立一个develop 然后本地才可以成功push到maste分支上
然后在服务器上develop分支上运行git merge master ,把push到master上的信息同步到develop上

其他可能会用到的命令

    git remote show origin  查看远程分支的信息
     find / -name XXX 查找文件
     find / -name na*

以后有什么问题在补充,或者有疑问可以留言。 隔了一段时间才写的,有点记不清楚了。。

你可能感兴趣的:(centos 7.2 上建立自己的git仓库)