搭建git服務器

Github 公開的項目是免費的,可是若是你不想讓其餘人看到你的項目就須要收費。前端

這時咱們就須要本身搭建一臺Git服務器做爲私有倉庫使用。linux

linux下搭建git服務器,其實網上的教程不少,都很詳細,本人菜鳥,弄了大半天,仍是寫個筆記。git

環境:debainangularjs

功能:在debain上搭建git服務器,windows上上傳已有的git項目(此項目不是從服務器上克隆的,就經過工具和命令建立的)github

一.安裝git服務器web

#更新
apt-get update

#安裝git(網上說是要安裝依賴,我沒有安裝,也成功了,若是後期出現問題再加依賴吧!)
apt-get install git

#建立一個git用戶,用來運行git服務,此用戶建立後,在home下面會產生一個git文件
adduser git 

 

2、受權客戶端用戶
#將客戶端的公鑰拷貝到/home/git/.ssh/authorized_keys下面  ,進入/home/git 查看是否有.ssh文件,這個文件是不可見的,因此不要用ls查看,直接cd .ssh,若是沒有就沒法進入
#沒有.ssh的狀況,手動建立 
mkdir .ssh

#建立authorized_keys文件
touch authorized_keys

#這個文件裏要存放的是全部客戶端的公鑰,一行一個,客戶端產生公鑰的辦法是:
#若是你沒有Github帳號,須要在官網https://github.com/註冊一個帳號。
#註冊完了以後,開始->Git Bash,使用如下命令生成SSH Key:
ssh-keygen -t rsa -C "youremail@example.com"
#後面的 your_email@youremail.com 改成你在 github 上註冊的郵箱,以後會要求確認路徑和輸入密碼(密碼記住,一會上傳項目須要),咱們這使用默認的一路回車就行。 #成功的話會在C:/用戶/Administrator/下生成.ssh文件夾,進去,打開 id_rsa.pub,複製裏面的 key(全選,前面的ssh-rsa不要漏了),到/home/git/.ssh/authorized_keys裏面
 
3、建立項目庫
git init --bare /home/git_repository/hello.git

 

4、受權hello.git倉庫的全部者爲git用戶(很重要,不受權,上傳項目的時候將致使權限不足,後面每一個項目都須要受權全部者,在客戶端訪問的時候只能用這個用戶名訪問)shell

 chown -R git:git /home/git_repository/hello.git

 

5、禁用shell登陸vim

出於安全考慮,git用戶不容許登陸shell,
vim /etc/passwd

找到相似下面的一行: git:x:
1001:1001:,,,:/home/git:/bin/bash 改成: git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell 如此,git用戶只能經過ssh使用git,卻沒法登陸shell。

 

6、客戶端上傳windows

我這裏是webstorm的angularjs項目,只要是git項目結構均可以
查看遠程倉庫是否配置,若是配置了,下面會顯示已經配置的遠程倉庫
git remote -v

#若是配置了遠程倉庫,先刪除已配置的遠程倉庫,未配置的跳過此步驟
git remote rm origin

#配置剛纔的服務器倉庫(@前面的git是剛纔執行的項目全部者的用戶名,個人服務器ip是47.98.152.43,根據本身的ip進行修改)
git remote add origin git@47.98.152.43:/home/git_repository/hello.git

#上傳(第一次須要加-u,後面每次直接git push就能夠了)
git push -u orgin master

 

7、講一下在webstorm中操做git的整個流程安全

  1.服務器端安裝完git後建立git倉庫(上面有詳細步驟)

  2.須要使用這個倉庫的同志都把本身的鑰匙發個服務器端的同志,將其添加到git/.ssh/authorized_keys文件下 (上面有詳細步驟)

  3.前端的同志建立一個anglar / ionic的項目 ,以ionic爲例 : ionic start 項目名 blank

  4.建立完成以後,執行一下幾條命令將項目發送到服務端的倉庫做爲第一個版本,也就是創始人,暫且叫作A用戶

git init (若是不是git項目,將其轉化成git項目;若是式,不須要執行此命令)
git add . (將項目目前的文件都添加的能夠提交的區域,必需要執行此步驟,並且注意 . 前面有空格)
git remote add origin git@47.98.152.44:/home/git_repository/verify.git  (添加遠程倉庫,在這以前確認該項目有沒有遠程倉庫,若是有,就先刪除,上面有詳細操做)
git push -u origin master  (第一次提交,必須執行此命令)

  5.A用戶將項目提交到了倉庫,B和C...用戶就能夠經過克隆將這麼項目下載到本地

  git clone git@47.98.152.44:/home/git_repository/verify.git

 6.克隆到本地後,就是後面的提交到服務器倉庫、更新到本地的問題啦,先看,提交到服務器倉庫(克隆的項目,默認遠程倉庫的地址就是克隆的地址,因此不須要再次配置遠程倉庫的地址啦!查看遠程倉庫的地址,除了用命令,也能夠 項目右鍵-> Git -> Repository -> Remotes )

  

 

  

  記住,這裏必定要選擇Commit andPush,不然代碼不會更新到服務器倉庫,只是你本地倉庫更新了而已。

 

  7.將最新的代碼更新到本地,在webstorm中能夠執行下面的操做步驟

    項目右鍵 -> Git -> Repository -> Pull -> Pull

   應該也能夠用命令更新,只是..我不知道而已!!!!!

 

到此,本地項目上傳到服務器 以及 從服務器更新項目 就完畢啦!

相關文章
相關標籤/搜索