1. 程式人生 > >cenos7 上搭建git伺服器

cenos7 上搭建git伺服器

安裝git 在官網下載 tar.gz的包 然後放到 Linux(centos7系統)伺服器中
執行 tar -zxvf 檔名 來進行解壓檔案
然後 執行 git -version 來檢視git版本
正常出現版本號 繼續進行下一步

執行 useradd git 命令來建立 git使用者
然後 執行 passwd git 來設定 git使用者密碼

在你打算建立git倉庫的地方 執行命令(我的目錄在data/repositories)以下例子也是用的這個路徑
git init --bare /data/repositories/gittest.git
這樣倉庫就初始化了
給倉庫 許可權 chown -R git:git gittest.git/

然後去window 
開啟git bash 命令列工具 輸入命令
ssh-keygen -t rsa -C "[email protected]" (後面的郵箱填寫自己的)
此時 C:\Users\使用者名稱\.ssh 下會多出兩個檔案 id_rsa 和 id_rsa.pub
id_rsa 是私鑰
id_rsa.pub 是公鑰
複製 id_rsa.pub 檔案中的公鑰
然後回到linux


在/home/git/ 下建立目錄 .ssh 命令 mkdir .ssh
進入目錄 建立 檔案  cat >authorized_keys
把 複製的公鑰內容 複製進去 儲存
另外 設定 .ssh 資料夾的許可權
chmod 700 .ssh
然後 設定 authorized_keys 檔案的許可權
chmod 600 authorized_keys

然後在window 上就可以 嘗試 push程式碼了
git add .(add後面有空格)
新增檔案
git  commit -m "aaaaaa" (後面字串是提交日誌)
提交檔案到本地倉庫
git push [email protected]:/data/repositories/gittest.git/
提交檔案到 git伺服器
然後時候 如果報錯 fatal: sha1 file '<stdout>' write error: Broken pipe
這個 的可能有很多
比如 檔案過大
 git config http.postBuffer 52428800
比如 許可權不對 
檢查 你的url 拼寫和 git使用者的許可權
或者 嘗試 加一個 config的屬性
git config --local sendpack.sideband false
git config --global sendpack.sideband false

注意 push時候 選擇的 分支 要和 pull 時候的分支一樣 不然 不能正常的拉取專案

自己經驗 如果有問題 請指正