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*
以后有什么问题在补充,或者有疑问可以留言。 隔了一段时间才写的,有点记不清楚了。。