說明 :文檔環境為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
選個文件存放目錄,大公告成!