Linux 系統搭建Git服務器



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本地新開一個命令窗口

屏幕快照 2017-10-19 下午2.18.31.png

首先我們再桌面建一個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生成就成功了。

屏幕快照 2017-10-19 下午5.02.09.png

  • 服務器配置
    作者的服務器沒有配過其他的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 打開文件跳轉,前往~/.ssh

    QQ20171019-172041.png

    進去后找到你之前生成ssh時生成的文件的同名帶.pub 后綴的文件 。
    如果沒改名字一路回車生成的就是 id_rsa.pub 作者改了名字ky_linux

    BF6CCF97-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 文件

QQ20171019-180109.png

看作者配置了 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

選個文件存放目錄,大公告成!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,948評論 18 139
  • [在 Linux 下搭建 Git 服務器] 環境:服務器 CentOS6.6 + git(version 1.7....
    9ef822571b70閱讀 906評論 0 5
  • 1、打開終端,cd到想要創建的目標路徑,使用命令“ pod lib create xxx 模塊名稱/項目名 ” 然...
    落葉悠悠閱讀 403評論 0 0
  • 很多人都喜歡追星。奇怪得很,我倒是從來沒有對哪個明星著迷得不得了,買海報,買專輯,追演唱會什么的,都沒有干過。我曾...
    吳端端閱讀 245評論 0 1
  • 一是自己的方面。 2017年,我的定位是尋找可能性的一年。在尋找可能性的時候,我會大幅減少天氣預報的量,更多會涉及...
    魔法密林港閱讀 250評論 0 0