git的搭建與使用
1. git搭建及無密碼訪問
1.1 git與gitlab
GIT(分布式版本控制系統), 是一個開源的分布式版本控制系統,可以有效、高速的處理從很小到非常大的項目版本管理。
Gitlab是使用Git作為代碼管理工具,並在此基礎上搭建起來的web服務。
下面介紹二者的搭建,可以按需選擇其中一種搭建。
1.2 服務端搭建(基於CentOS)
1.2.1搭建git服務
(1)安裝git
# yum -y install git
(2)查看git版本
# git --version
CentOS7 默認安裝的是Git 1.8.3.1
(3)創建git目錄和一個空git倉庫
# cd /
# mkdir git
# cd git
# git init --bare test.git
到此一個簡單的Git服務器倉庫就創建完成
(4)創建git運行用戶並設置密碼
# useradd git
# passwd git
因為服務器上的Git倉庫純粹是為了共享,所以不讓用戶直接登錄到服務器上去改工作區,並且服務器上的Git倉庫通常都以.git結尾。然後,把用戶git的權限變為可讀:
# chown -R git:git test.git
禁用shell登錄,出於安全考慮,創建的git用戶不允許登錄shell,這可以通過終端編輯/etc/passwd文件完成。
# vi /etc/passwd
找到類似下面的一行:
git:x:1001:1001:,,,:/home/git:/bin/bash
改為:
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
1.2.2搭建gitlab
以下的yum源均屬於網絡源
(1)安裝和配置必要的依賴關系
# sudo yum install curl policycoreutils openssh-server openssh-clients
# sudo systemctl enable sshd
# sudo systemctl start sshd
# sudo yum install postfix
# sudo systemctl enable postfix
# sudo systemctl start postfix
# sudo firewall-cmd --permanent --add-service=http
# sudo systemctl reload firewalld
(2) 添加GitLab包服務器和安裝包
# sudo yum install gitlab-ce
(3) 配置和啟動 GitLab
# sudo gitlab-ctl reconfigure
(4)登陸IP配置
(5)關閉gitlab的自動啟動# systemctl disable gitlab-runsvdir.service
(6) 開啟gitlab的自動啟動
# systemctl enable gitlab-runsvdir.service # systemctl start gitlab-runsvdir.service # gitlab-cmd start
1.3 客戶端的基本使用
1.3.1 基本使用
常用操作如下:
1.獲取一個url對應的遠程Git repo, 創建一個local copy.
# git clone <URL>
2 .查看修改更新了哪些文件# git status 3 .添加文件 # git add <*> 4.查看已經添加了的文件 # git status
5. 抓取遠程倉庫所有分支更新並合並到本地
# git pull
6. 查看遠程服務器地址和倉庫名稱
# git remote -v
7.從版本庫中刪除文件
# git rm <file>
1.3.2 客戶端無密碼訪問
背景:
Git使用https協議,每次pull, push都要輸入密碼,比較麻煩。 使用git協議,然後使用ssh密鑰。這樣可以省去每次都輸密碼。
大概需要三個步驟:
本地生成秘鑰
首先先確認一下是否已經有一個公鑰了。SSH 公鑰默認儲存在賬戶的主目錄下的 ~/.ssh 目錄。
# cd ~/.ssh
# ls
關鍵是看有沒有用 something 和 something.pub 來命名的一對文件,這個 something 通常就是 id_dsa 或 id_rsa。有 .pub 後綴的文件就是公鑰,另一個文件則是密鑰。假如沒有這些文件,或者幹脆連 .ssh 目錄都沒有,可以用 ssh-keygen 來創建。
# ssh-keygen
一直回車即可
添加公鑰到你的github帳戶
查看公鑰
# cat ~/.ssh/id_rsa.pub
登陸github帳戶點擊 SSH Keys -> 點擊 Add SSH key
然後你復制上面的公鑰內容,粘貼進“Key”文本域內。 title域,你隨便填一個都行。 完了,點擊 Add key。
修改你本地的ssh remote url
編輯remote url. 使其不用https協議,改用git 協議
可以使用瀏覽器登陸你的github,在上面可以看到你的ssh協議相應的url
# vi /home/ecloud/.git/config
1.3.3 解決沖突的常用方法
本地文件與服務器端文件不同步時,執行git會抱錯
常用的解決辦法就算讓服務端文件完全覆蓋本地
# git checkout 報錯文件路徑
git的搭建與使用