1、安装git
windows和Linux都需要安装git,这里介绍Linux的安装步骤
以root用户为例:
1.1> 安装git
yum install git y
git的默认安装路径在/usr/libexec/git-core
1.2> 查看git版本,检查是否成功
git --version
1.3> 设置Linux端GIT的账号和密码
groupadd git
设置账号
#shuizhu 为账号名字,根据你的实际命名
useradd shuizhu -g git
设置密码
#passwd后为账号的名字
passwd shuizhu
输入以上命令后,会提示输入密码和确认密码
2、设置远程仓库
2.1> Linux端,在/home目录下建立文件夹"shuizhu"名字可以任意命名
mkdir -p /home/shuizhu
2.2> 进入到该目录
cd /home/shuizhu
2.3> 建立远程仓库文件"test.git"
mkdir -p test.git
2.4>初始化该远程仓库
git init --bare test.git
仓库搭建完毕,会出现以下信息
Initialized empty Git repository in /home/shuizhu/test.git
2.5> 配置仓库,把仓库所属用户改为shuizhu(你设置的git账号)
chown -R shuizhu:git test.git/
注:chown将指定文件的拥有者改为指定的用户或组 -R处理指定目录以及其子目录下的所有文件
3、window克隆Linux的远程仓库
3.1> 在window中的工作空间中,右键---git bash here
3.2> 输入以下命令【101.212.116.178为我的主机IP地址】
# 注意@符号前,为Linux的用户名root,不是Git的用户名
git clone root@101.212.116.178:/home/shuizhu/test.git
3.3> 输入连接主机的密码,即可拉去Linux的远程仓库,我的仓库名为"shuizhu"
第一次连接远程仓库时,Git使用SSH连接,而SSH连接在第一次验证GitHub服务器的Key时,需要你确认GitHub的Key的指纹信息是否真的来自GitHub的服务器,键入yes,然后输入远程仓库的密码就即可。
3.4> 这时,该文件夹为与Linux远程仓库关联的本地仓库
想上传文件给git服务器,只需要把文件放在该目录下即可,
3.4.1> 在我的D://workplace/test中,打开git bash here ,输入
git init
3.4.2>输入
git remote add origin root@101.212.116.178:/home/shuizhu/test
进行Linux远程仓库关联,如果已经关联,会提示错误,可以忽略
3.4.3>输入git add . 把文件提交至缓存区
git add .
3.4.4> 输入git commit -m '提示信息'
git commit -m '提示信息'
3.4.5> 开始推送代码
git push
如果推送失败,出现以下问题:
则强制推送:
git push -f origin master
至此,Linux的远程仓库的代码会随之更新
4、设置window免密克隆Linux仓库
4.1> 在windows客户端的gitbash中生成用户私钥和公钥
直接在git bash here 输入以下指令
# shuizhu@163.com请替换成你的邮箱地址
ssh-keygen -t rsa -C "shuizhu@163.com"
此时,在c盘用户路径下的/.ssh文件夹下会生成私钥id_rsa和公钥id_rsa.pub
4.2> 在Linux端
修改/etc/ssh/sshd_config,将其中的以下三项打开【有些Linux版本可能没有如下配置】
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
4.3> 将客户端生成的公钥给到服务器端
将公钥给到 home/shuizhu/.ssh/authorized_keys中,注意:(shuizhu为git的用户名)
注意,在Linux的GIT中,你创建的git账户,会在/home下生成用户文件夹
进入到该目录【shuizhu】
cd /home/shuizhu
建立配置文件
mkdir .ssh
提升权限
chmod 777 .ssh
touch .ssh/authorized_keys
4.4> 在Windows的git bash here窗口中,执行以下命令[同步公钥]
ssh root@101.212.116.178 'cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub
4.5> 在Linux端的git用户目录下[ /home/shuizhu ]
目的:提高文件的读写权限
chmod 600 .ssh/authorized_keys
chmod 700 .ssh
# shuizhu为git的账号名
chown shuizhu:git .ssh
# shuizhu为git的账号名
chown shuizhu:git .ssh/authorized_keys