-
说明 :文档环境为Mac 操作阿里云Linux远程服务器搭建git。个人心得,不保证绝对正确,仅供交流学习。
参考文档:
http://www.linuxidc.com/Linux/2015-09/123670.htm
http://www.cnblogs.com/dwj97/p/6559056.html
http://blog.csdn.net/qq_32685139/article/details/52426155 -
需要
1、一个Linux 系统云服务器 。
2、一台能联网的Mac系统的电脑做客户端。
1、登录服务器
想操作肯定就得先登上去。好在大苹果就是屌,命令行登录简单的不要不要的
$ ssh root@xxx.xxx.xxx.xxx
'xxx.xxx.xxx.xxx' 就是你服务器的地址
root 是Linux的root 用户的用户名
2、安装git
服务器端使用的是shell 命令,不熟悉的童鞋可以百度一下 常用命令
#yum install -y git
安装完后,查看 Git 版本
[root@iZ252rbhhyiZ ~]# git --version
git version 1.7.1
3、服务器端创建 git 用户,用来管理 Git 服务
[root@iZ252rbhhyiZ home]# id git
id: git:无此用户
[root@iZ252rbhhyiZ home]# useradd git
[root@iZ252rbhhyiZ home]# passwd git
[root@iZ252rbhhyiZ home]# id git
uid=501(git) gid=501(git) groups=501(git)
4、服务器端创建 Git 仓库
这个地方看帖子没转过来:
/home/git目录是git用户的文件目录,
所以作者的git文件都放到这个目录下面了。
~继续:
首先把git目录 owner 修改为 git
然后 切换用户到git 再进到git目录进行操作,这样就不会有权限问题。
用户身份很重要不要搞错
[root@iZ252rbhhyiZ home]# chown -R git:git git
[root@iZ252rbhhyiZ git]# su git
[git@iZ252rbhhyiZ ~]$ cd /home/git
创建iOS文件夹,然后创建gittest.git 仓库文件夹
进入gittest.git 文件夹 初始化Git仓库
这个地方要注意,要在git这个账户下 用--bare 初始化才能正常提交
[git@iZ252rbhhyiZ git]$ mkdir iOS
[git@iZ252rbhhyiZ git]$ mkdir iOS/gittest.git
[git@iZ252rbhhyiZ git]$ cd iOS/gittest.git
[git@iZ252rbhhyiZ gittest.git]$ git --bare init
Initialized empty Git repository in /home/git/iOS/gittest.git/
5、clone 远程仓库到本地
同样的本地的Mac电脑必须安装过git 。
想要可视化的用,最好再装一个Sourcetree
怎么装自行度娘吧~
在装有git的Mac本地新开一个命令窗口

首先我们再桌面建一个test文件夹,用来存放clone的项目
进到test文件夹。把项目clone下来,期间输入你之前设置的服务器git账户的密码
$ cd desktop/test
$ git clone git@xxx.xxx.xxx.xxx:/home/git/iOS/gittest.git
Cloning into 'gittest'...
去到桌面打开test看看里面是不是多了一个gittest 文件夹。
这个时候一个空的项目仓库就建好了,也clone成功了。很简单,基本不会出错。
绕的在最后一步的ssh设置!
6、SSH设置
SSH这个是啥东西作者也描述不清楚。重要的是它的功能。
配置完SSH能让你clone和push的时候不用输入密码,一键更新。
大致的效果简单描述一下:
SSH 有公钥和私钥。生成的时候一起生成。
客户端把公钥给服务器,服务器存起来,第一次登录输入密码,
以后就能用ssh自动登录了。
- 首先在客户端Mac电脑 生成ssh 公钥和私钥
ssh-keygen -t rsa
可以指定生成的文件的文件名,也可以不改,一路回车
最后下图这样客户端ssh生成就成功了。

-
服务器配置
作者的服务器没有配过其他的ssh 所以文件路径重新配置的。
首先在服务器的 home/git目录下新建.ssh 文件夹 然后跟客户端一样生成一个SSH到这个目录下.注意当前目录[root@iZ252rbhhyiZ git] # mkdir .ssh [root@iZ252rbhhyiZ git] # ssh-keygen -C 'your@email.com' -t rsa
一路回车。然后cd .ssh
# cd .ssh # ll
就会看到多了三个文件
QQ20171019-171800.png
-
将客户端的公钥 粘贴到服务器的 authorized_keys 文件内
在客户端,点击Finder 然后shift + com + g 打开文件跳转,前往~/.sshQQ20171019-172041.png
进去后找到你之前生成ssh时生成的文件的同名带.pub 后缀的文件 。
如果没改名字一路回车生成的就是 id_rsa.pub 作者改了名字ky_linuxBF6CCF97-D1B1-45AC-BE33-83E77EB6AF5E.png
用文本编辑器打开文件,复制内容粘贴搭配服务器的authorized_keys文件内
在服务器 .ssh 文件目录下:# vim authorized_keys
进入vim 编辑模式 ,这个不熟悉的可以百度一下命令,本文按操作走就行。
然后把复制的内容粘贴上,每个ssh 是一行 ,以后多用户的时候 就是多个ssh。
esc 然后 :wq 保存退出
这个时候如果你是之前配过下面的步骤,那么一台新的机器的ssh添加已经完成了。
可惜第一次的时候总是还要多做一些
首先切换到root 用户 。然后 vim 编辑/etc/ssh/sshd_config文件,这个文件是ssh服务器的配置文件C17D76F0-ABBD-4E6D-AFCC-EC448A439983.png
找到上面这张图片中的那几段黄色语句,将其注释取消,再将属性修改成上面那样的。
注意: AuthorizedKeysFile 这个是你存放 ssh 公钥的文件路径,你跟作者的可能不一样。启动一下ssh服务:
# service sshd restart
ok ssh 配置完成。回到客户端。
弄个新的文件夹再clone一次试试。
然后弄个新的文件夹再clone一次~其他,客户端多个ssh服务器配置
命令行的git不知道你会不会用。反正我不会用。
刚刚我们知道了一个服务器 可以在AuthorizedKeysFile 里面添加多个客户端的ssh 。那么客户端怎么配置多个ssh 同时联通多个服务器呢。
毕竟哥们有 gitHub,有coding 和有这公司服务器。资源多也是一种烦恼啊~SO!
-
在客户端 前往文件夹 .ssh ,之前做过。没关Finder的就不需要这一步
-
打开文件列表中的config 文件

看作者配置了 gitHub 、coding 和作者公司的服务器 一共三个Host
你可以对比第三个来搞
其中:
HostName
是网址 可以是ip 也可以是域名地址
Host
是别名可以跟HostName一样,
要是改了的话你的服务器地址拼法就可以高大上的从这样:
git clone git@xxx.xxx.xxx.xxx:/home/git/iOS/gittest.git
变成这样
git clone git@myHost:/home/git/iOS/gittest.git
User
就是你在服务器的登录名 咱们设置的 是git
IdentityFile
是你放私钥的地址
配置完了就可以 用sourcetree来搞了。
Sourcetree : 新建 从 URL 克隆
输入地址 :
git@xxx.xxx.xxx.xxx:/home/git/iOS/gittest.git
或是:
git clone git@myHost:/home/git/iOS/gittest.git
选个文件存放目录,大公告成!
网友评论