1. 程式人生 > >(轉載)搭建小型Git伺服器

(轉載)搭建小型Git伺服器

    最近在學習 git 使用,在簡書上看到了一篇不錯的文章,轉載作為備忘記錄。

轉載原文出處:https://www.jianshu.com/p/ec36ab896ed5

 

有些小公司沒有搭建Git伺服器,讓一些用過Git伺服器的人難以適應,增加了合程式碼的困惑,而且不知道自己改過哪些地方,追蹤的時候會非常麻煩,今天教大家在電腦上搭建自己的Git伺服器。
如果幾個人同時維護一份程式碼,可以向公司申請一臺電腦,當成伺服器,如果沒有條件,別慌,可以把某個同事的電腦當成伺服器(比較苦逼的就是那個同事電腦可能會卡一點),一個人維護那就更好了,接下下開始搭建Git伺服器環境。
一、搭建git伺服器環境
1)、從

http://www.gitblit.com下載Git伺服器包,如下圖所示;

6M}NI0B91GR8F8F37GQ83BO.png

 

2)、下載成功之後,把該目錄放在空間比較大的盤中,譬如本電腦的D盤比較大,我就放在了D盤:D:\git_server\gitblit-1.8.0,git_server是自己建立的一個目錄,把下載的檔案放在該目錄下,進行解壓。

HJ3}3JTAKKKED0Z2MGFZSLG.png

 

3)、建立儲存專案程式碼的目錄,這裡為D:\git_server\GitProject
4)、更改D:\git_server\gitblit-1.8.0\gitblit-1.8.0\data目錄下的defaluts.properties檔案。如下幾個地方需要修改。

 1、 #git.repositoriesFolder = ${baseFolder}/git
        git.repositoriesFolder = D:\git_server\GitProject\demo
 2、#server.httpPort = 0
       server.httpPort = 10010
 3、server.httpBindInterface =192.168.1.166  後面的IP地址為電腦的IP地址
 4、server.httpsBindInterface =localhost
     更改後,儲存關閉檔案。

5)、開始執行gitblit.cmd批處理檔案。如下圖所示表示執行成功。

run_success.png

6、在瀏覽器中輸入:http://192.168.1.166:10010/,如果可以登入網頁表示伺服器環境搭建成功。
7、使用者預設情況下可以用使用者名稱:admin和密碼:admin進行登入,之後可以更改密碼,如下所示。

change_password.png

7、客戶端想訪問服務端首先得建立版本庫,如下圖所示,填寫相關內容後,點選建立按鈕。

create_database.png

8、建立版本庫之後,就會生成如下介面,客戶端可以通過如下地址ssh://[email protected]:29418/~admin/sensor.git訪問伺服器了。

{N)CPA2G%5TSMZI8VGU_5YB.png

注意:如果被當成Git伺服器的電腦是動態獲取IP地址,則需要更換defaluts.properties檔案下的屬性server.httpBindInterface =新的IP地址,然後啟動gitblit.cmd,然後才可以訪問網頁:http://新的IP地址:10010/

二、客戶端訪問Git伺服器
1、客戶端想訪問Git伺服器首先需要下載TortoiseGit,建議下載地址:https://tortoisegit.org/download/,下載並安裝成功後,找一個目錄如:本人在路徑e/worktools下,點選滑鼠右鍵會彈出Git Bash here選項,單機,
輸入git clone http://[email protected]:10010/r/~admin/radio.git,遠端版本庫就拉在本地目錄E:\work_tools\sensor下了。
2、使用者想把自己的專案放到Git伺服器上,譬如把本地的收音機radio專案傳到GIt伺服器上,首先把本地的Radio專案拷貝到E:\work_tools\sensor下,如下所示:

radio.png

3、拷貝好後,進入Git控制檯輸入cd sensor 命令進入sensor目錄,然後輸入git status命令,就可以看到加入的Radio_UI檔案。

[email protected]~LE(43T{7~INM2R)O7.png

4、接著在控制檯輸入git add Radio_UI命令,再次輸入git status命令,此時檔案表示可以提交的狀態。
5、git commit -m "first commit" 通過該命令提交程式碼,""包含的內容是註釋文,此時程式碼仍然沒有上傳到伺服器,而只是快取在本地,接著輸入
git push ssh://[email protected]:29418/~admin/sensor.git
出現如下提示框,需要輸入使用者密碼,前面兩個password直接按Enter鍵,最後一個需要輸入登入時的密碼,輸入之後就開始上傳。

auth.png

6、上傳成功後,使用者可以去伺服器介面檢視,如下所示表示已經上傳成功。

upload.png

三、GiTortoise操作Git伺服器上的程式碼。

建立遠端分支
(1)從伺服器上下載程式碼並儲存在E:\work_demos目錄:
首先進入E:\work_demos目錄下,滑鼠右鍵,點選Git Bash Here開啟Git控制檯,在控制檯中輸入如下命令:

git clone ssh://[email protected]:29418/~admin/Test.git

ssh://[email protected]:29418/~admin/Test.git表示你之前建立庫的路徑。程式碼下完之後,就會有一個新生成一個資料夾Test,通過命令cd Test,進入該目錄。

(1)檢視遠端和本地分支:git branch -a

[email protected] MINGW64 /e/work_demos/Test (master)
$ git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master

(2)建立分支:git branch sensor

 [email protected] MINGW64 /e/work_demos/Test (master)
$ git branch sensor

(3)檢視本地分支:git branch, master前面有一個星號,表示當前正在master分支上

 [email protected] MINGW64 /e/work_demos/Test (master)
$ git branch
* master
sensor

(4)把當前分支推送到遠端服務:密碼就是登陸伺服器的密碼

[email protected] MINGW64 /e/work_demos/Test (master)
$ git push origin sensor
Password authentication
Password:
Total 0 (delta 0), reused 0 (delta 0)
remote: Updating references: 100% (1/1)
To ssh://192.168.1.175:29418/~admin/Test.git
 * [new branch]      sensor -> sensor

(5)切換到分支sensor

[email protected] MINGW64 /e/work_demos/Test (master)
$ git checkout sensor
Switched to branch 'sensor'

(6)再次檢視本地分支:此時星號在分支sensor前面,說明正在分支sensor上。

[email protected] MINGW64 /e/work_demos/Test (sensor)
$ git branch
 master
* sensor

(7) 在分支sensor修改程式碼,例如增加一個檔案。

[email protected] MINGW64 /e/work_demos/Test (sensor)
$ touch a.txt

(8)檢視修改狀態,表示新增加了一個檔案

[email protected] MINGW64 /e/work_demos/Test (sensor)
$ git status
On branch sensor
Untracked files:
  (use "git add <file>..." to include in what will be committed)

    a.txt

nothing added to commit but untracked files present (use "git add" to track)

(9)增加程式碼並新增;

Administrato[email protected] MINGW64 /e/work_demos/Test (sensor)
$ git add a.txt

[email protected] MINGW64 /e/work_demos/Test (sensor)
$ git commit -m "提交a.txt"
[sensor 5770c67] 提交a.txt
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 a.txt

(10)切到主分支:git checkout master

[email protected] MINGW64 /e/work_demos/Test (sensor)
$ git checkout master
Switched to branch 'master'
Your branch is up-to-date with 'origin/master'.

(11)把sensor分支提交的程式碼合併到master分支上:git merge sensor

[email protected] MINGW64 /e/work_demos/Test (master)
$ git merge sensor
Updating 04b2ecc..5770c67
Fast-forward
a.txt | 0
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 a.txt

(12)刪除分支sensor: git branch -d sensor
刪除分支後對修改的內容沒有任何影響,因為已經合併到主分支了。

[email protected] MINGW64 /e/work_demos/Test (master)
$ git branch -d sensor
Deleted branch sensor (was e525169).

(11)把程式碼推送到伺服器:git push

[email protected] MINGW64 /e/work_demos/Test (master)
$ git push
Password authentication
Password:
Counting objects: 2, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (2/2), 278 bytes | 0 bytes/s, done.
Total 2 (delta 0), reused 0 (delta 0)
remote: Updating references: 100% (1/1)
To ssh://192.168.1.175:29418/~admin/Test.git
5770c67..e525169  master -> master

(12)如果多人開發一份程式碼,為了區分使用者,需要改使用者名稱,命令如下:

$git config --global user.email "[email protected]"
$git config --global user.name "Emily"

四、eclipse操作Git伺服器的程式碼。
(1)拉取伺服器程式碼如下圖所示:

F}%HI8N4(G~Z372M%QE~C2V.png

4I%R40J%P}YT_49(40WB5_M.png

URI是遠端伺服器下載程式碼的路徑,直接貼上,其他都會自動生成,密碼是登入伺服器的密碼。

 

6NL`CBDZ}58M}I6TD~B4}H0.png

{4U2XP1E)%TO52XDI4H4PJU.png

C:\Users\Administrator\git\Test是儲存程式碼的路徑,不是固定的,可以切換成其他路徑。

 

5OQU_}XW0VG78JDHO`IT5YS.png

FPDS[}[email protected]%MXIL]9D)6C.png

出現如下情況,表示eclipse中已經存在該程式碼。如果不存在Finish按鈕不是灰色的,是可以點選的。到這裡就是最後一步了,點選finish後代碼就已經從遠端伺服器拉取下來了。

QRZ5}[email protected]~E(4)2X%CH.png

(2)配置伺服器的地址

image.png

image.png

(2)在修改程式碼程式碼之前首先需要拉取最新程式碼git pull;

image.png

(3)提交修改的程式碼

image.png

注意:如果被當成Git伺服器的電腦是動態獲取IP地址,每次重啟電腦後,需要檢視電腦的ip,如果電腦IP和上一次相同,只用啟動gitblit.cmd即可。如果不同則需要更換defaluts.properties檔案下的屬性server.httpBindInterface =新的IP地址,然後啟動gitblit.cmd。啟動後,還需要修改原生代碼中.git目錄下config配置檔案後,eclipse才能正常操作伺服器程式碼如下所示:



作者:baby_double
連結:https://www.jianshu.com/p/ec36ab896ed5
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯絡作者獲得授權並註明出處。