linux下Git搭建

环境 CentOS 7.4 64bit

1.yum(与下面源码安装二选一)

  1. 安装 : yum install git
  2. 卸载 : yum remove git

2.源码安装 (自带的git版本太旧)

1.安装依赖的包

yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc 
perl-ExtUtils-MakeMaker

2.下载源码包
 1.https://github.com/git/git/releases/tag/v2.11.0
 2.想要啥版本自己找吧 兄dei

3.编译安装(路径为安装目标路径)

make prefix=/usr/local/git all 
make prefix=/usr/local/git install

4.配置环境变量

vi /etc/profile 
添加 export PATH=$PATH:/usr/local/git/bin 
立即生效配置文件 source /etc/profile

5.查看git

whereis git 
git –version

3.配置git

1.确保ssh 服务已安装
2.创建账户和密码 用于git 传输文件 这个账户和密码并不是git的账户而是系统的账户 此账户和密码可通过 ssh连接服务器

sudo useradd haha(创建名称为haha的用户)
sudo passwd haha(配置haha用户对应的密码)

3.创建git仓库存储目录和权限 (路径为你要创建仓库的路径)

sudo mkdir /home/git/repositories
// 将创建仓库的 所属用户及用户组设置为创建的git用户 要不然在用该用户push的时候没权限
sudo chown -R haha:haha /home/git/repositories
sudo chmod 755 /home/git/repositories

4.切换到git用户并建立服务器仓库

su git //切换用户
cd /home/git/repositories
初始化一个仓库名称为alloySQL
git init --bare alloySQL.git

5.本地克隆服务器上仓库

git clone git(用户名)@123.207.96.87:/home/git/repositories/alloySQL.git(仓库路径)

6.禁用shell登录
安全考虑 新建的用户只用来git 不允许其通过ssh登录
编辑文件/etc/passwd
找到一行

git(用户名):x:1001:1001:,,,:/home/git:/bin/bash

改为

git(用户名):x:1001:1001:,,,:/home/git:/usr/bin/git-shell

7.windows 下 git 简单配置

配置用户名和密码:
$ git config --global --add user.name "username"
$ git config --global --add user.email "email"
查看配置
$ git config --list

8.将本地文件push到远程仓库

1、到对应目录下

2、git init(初始化)初始化后在本地代码库会自动创建一个.git隐藏文件,这个就是本地代码库

3、git add . (加载文件). 是把文件夹里面的所有文件都加载进来

4、 git commit -m "提交log"(提交文件,创建文件时间点)

5、git status 查看文件追踪状态

6、 git remote add origin URL(地址)(推送代码)//删除 git remote rm orgin
例如:git remote add zhaotest MR.Zhao@127.0.0.1:/software/git_repos/git_server_repos.git

7、git push origin master(推送代码)

8、git clone url (克隆仓库)
例如:git clone MR.Zhao@111.111.111.111:/software/git_repos/git_server_repos.git

9.错误总结
1.push的时候卡住不动 参考链接:https://blog.csdn.net/cekiasoo/article/details/54259921
2.fatal: sha1 file '<stdout>' write error: Broken pipe
其中我遇到这种问题的原因是创建的用户没有对远程仓库操作的权限
解决原因见3.3及注释

10.关于Git分支策略
参考这个链接:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013743862006503a1c5bf5a783434581661a3cc2084efa000

11.免密登录
简单来说就是把本机生成的公钥拷到服务器./ssh 下的...文件

1.生成密钥
会要求你两边输入密钥 不想输直接回车
ssh-keygen -t rsa 
2.拷到服务器上
建议这么搞 复制文字容易缺字符

没有./ssh 文件夹及下面文件 可以去root拷一个

注意要把./ssh 文件的读写权限给 用户!!!
cat id_rsa.pub > .ssh/authorized_keys

12.关于协议 这里用的是ssh协议 check 工程的的时候 ssh://username@server/仓库地址
参考链接 关于git服务器的协议 https://git-scm.com/book/zh/v2/%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E7%9A%84-Git-%E5%8D%8F%E8%AE%AE