Cent_os_7系統下git環境搭建

環境:Cent_os_7系統 ,SoureTree ,Xshell5

本案例是在虛擬機下安裝Cent_os_7系統搭建git環境用作服務端,實現本地與服務端的數據傳輸。

1.服務端git環境搭建。


首先在虛擬機中打開運行系統,登陸後輸入:

yum install git

(這裏可以用xshell5連接服務端進行git環境搭建)

然後會有安裝過程的進度顯示

再次輸入:

yum install git
會顯示已安裝

這裏服務端的git環境已經搭建好了。

2.本地git環境設置

可以用gitbash敲命令行進行控制,我是安裝了一個SoureTree軟件,安裝教程網上搜索一下有很多,這裏就不做介紹了。

先來說一下SSH密鑰的使用,通過密鑰可以不用輸入密碼來進行文件推送拉取。步驟也很簡單,打開sourcetree點擊工具

初始的時候工具第二行是生成或添加SSH密鑰,這裏不建議使用這個生成密鑰,因爲太慢了,點擊命令行模式

會跳出類似gitbash的命令行窗口,輸入: 

ssh-keygen -t rsa

這裏第一個要輸入的是密鑰保存地址,我是直接空格過去保存在默認地址的,知道在哪裏就行了,然後輸入密碼,再次輸入密碼,我沒有設置密碼,直接空格兩下過去了

會有一個密鑰生成的圖形,說明密鑰已經生成了,然後找到密鑰所在的文件夾,也就是密鑰保存的地址,可以看到兩個文件

id_rsa.pub 是公鑰,id_rsa 是私鑰,找到後切換到souretree,打開工具->選項ssh客戶端配置

將公鑰私鑰都導進去,然後點確認就行了。接下來我們再切換到服務器配置密鑰,cd root 根目錄下輸入:

mkdir .ssh

創建密鑰文件目錄

然後打開文件傳輸進入到.ssh文件目錄下,將之前生成的公鑰傳到這個目錄下,然後改名爲authorized_keys,這裏解釋一下,因爲服務器讀取公鑰是讀取的這個文件名下的,可以在服務器etc/ssh/sshd_config查看配置文件,右鍵打開這個sshd_config文件

可以看到這個配置信息:AuthorizedKeysFile .ssh/authorized_keys

進行到這裏的話,密鑰登錄就已經配置好了,若想在xshell5用這個密鑰來登錄服務器需要配置一下

右鍵服務器名選擇屬性

用戶驗證這裏選擇密鑰選項,點擊瀏覽將之前生成的私鑰導入就行了

然後就可以用這個密鑰登錄服務器了。

3.git倉庫搭建

在服務器上創建git倉庫的文件目錄,然後進行初始化

mkdir git
cd git
git init

這樣服務器的git倉庫就創建好了,可能會出一些問題,輸入

git branch
查看一下有沒有生成默認分支,若是沒有生成的話需要進行添加提交的動作,隨便拖一個文件,或着倉庫裏有文件,做一次addcommit操作就可以了

git add .
git commit -m "first "

然後可以發現會生成一個master分支,接下來可以在sourcetree克隆服務端倉庫到本地了

xshell5的地址欄有個地址,我的是ssh://[email protected]:22

把這個地址複製下來

打開sourcetree點擊克隆

把地址粘貼到源路徑,後面跟上服務端git倉庫的地址/home/git,然後寫上本地倉庫的目標路徑,然後點克隆就行了

這就是克隆完成了,不過可能還會有個推送的問題

[remote rejected]master -> master (branch is currently checkedout)
remote: error: refusing to update checked out branch:refs/heads/master
remote: error: By default, updating the current branch in anon-bare repository
remote: error: is denied, because it will make the index and worktree inconsistent
remote: error: with what you pushed, and will require 'git reset--hard' to match
remote: error: the work tree to HEAD.
remote: error:

...

出現這種情況的話需要找到服務端git倉庫下的配置文件.git/config

右鍵打開編輯

在下面加上這行

[receive]
    denyCurrentBranch = ignore

然後保存就可以推送了

這就推送完成了,或許還會有個問題,你在服務器端可能看不到你剛纔推送的更新,這個時候你需要看一下緩存區的狀態

git stash

若是已經在你剛提交的這個狀態了,說明就推送到了,若是沒有,那就輸入

git log

查看一下版本,然後輸入

git reset --hard <-版本編碼->

定位到推送的版本,這樣就可以查看剛纔的推送了。對於無法及時檢出推送的問題可以查看我的這篇博客點擊打開鏈接

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章