局域網內搭建git遠程倉庫

Git本地遠程倉庫的搭建(windows 7專業版)

你是否也這樣想過?可以在自己的兩臺或者多臺電腦中創建一個倉庫,其他電腦的文件或者代碼都可以push到這臺機器中的git倉庫進行版本管理,相當於有一個自己的git遠程倉庫。

具體的功能可以這樣理解: 
    


1.功能需求
1)創建根倉庫(總得倉庫,比如本機D盤)裏文件可見。

2)本地倉庫(C盤倉庫)可關聯根倉庫(D盤倉庫)並提交。

3)局域網其他機器可訪問根倉庫並可向根倉庫提交。

 

 

2.準備環境
1)兩臺機器都安裝了git。

2)兩臺機器可以ping通。

 

 

3.功能實現
1) 根倉庫的搭建

找好要存放的根倉庫目錄,比如容量比較大的硬盤D,移動硬盤也可以(相當於一個移動倉庫,我沒有試過,原理上可行)。 
在要做爲倉庫的目錄(如D:\AllGitRepository)下執行以下命令創建倉庫:


D:\AllGitRepository>git init
Initialized empty Git repository in D:/AllGitRepository/.git/12


這樣,本地的根倉庫就搭建好了。
//不創建裸倉庫,因爲看不到文件。


2).本地倉庫(C盤倉庫)可關聯根倉庫(D盤倉庫)並提交 
重點來了。 
 
先在C盤創建一個測試目錄gitTest,執行以下命令。

 

::創建文件。
C:\Users\gitTest>type null > a.txt
C:\Users\gitTest>dir
 C:\Users\gitTest 的目錄

2018/07/09  14:45    <DIR>          .
2018/07/09  14:45    <DIR>          ..
2018/07/09  14:45    <DIR>          a.txt

::創建本地倉庫。
C:\Users\gitTest>git init
Initialized empty Git repository in C:/Users/gitTest/.git/

C:\Users\gitTest>git add .
::提交到本地倉庫。
C:\Users\gitTest>git commit -m "test"
[master (root-commit) 41bf91e] test
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 a.txt

::關聯根倉庫(D盤根倉庫)
C:\Users\gitTest>git remote add rootRep D:\AllGitRepository\12345678910111213141516171819202122

在根倉庫(D盤目錄)下執行以下命令:

D:\AllGitRepository>git config --global receive.denyCurrentBranch ignore1

修改根倉庫.git/hooks/post-update.sample文件,在最下邊添加以下代碼:

 

unset GIT_DIR
cd ..
git checkout -f123

將該文件後綴刪除,變爲post-update,post-update文件內容如下: 


之後就可以在C盤的倉庫中做提交了:

C:\Users\gitTest>git push -u rootRep master
Counting objects: 5, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (5/5), 610 bytes | 0 bytes/s, done.
Total 5 (delta 0), reused 0 (delta 0)
To D:\AllGitRepository\
   41bf91e..03de5cf  master -> master
Branch master set up to track remote branch master from rootRep.123456789

 
遠程倉庫和本地倉庫就關聯好了。之間可以push和pull。

前邊只是示例,真實環境下我們已經有了本地的倉庫,裏邊還有不少的代碼,比如我有以下一個工程: 
 
我不會可能將文件都push到根倉庫的根路徑下,因爲根倉庫不只會有這一個文件,我們可以在跟倉庫下創建一個管理該項目的文件夾並創建倉庫,該倉庫作爲本地倉庫的遠程倉庫,然後像上邊一樣配置倉庫(修改post-update文件)就可以push了。在根倉庫中對所有的倉庫進行統一管理。


3).局域網其他機器訪問根倉庫並向根倉庫提交。
其他機器訪問根倉庫,只需要將根倉庫文件夾共享就可以(添加密碼驗證)。

將根倉庫共享。

a.右鍵根倉庫目錄—>屬性—>共享—>高級共享—->勾選共享此文件夾—->權限如下: 


b.在另一臺機器上右鍵計算機—>映射網絡驅動器:

輸入根倉庫地址比如: 
 
//如果需要輸入密碼,輸入另一臺電腦的登錄密碼。

遠程提交:
上述步驟將根倉庫的地址映射爲了X:\所以我們只需要將遠程倉庫關聯到X:\目錄下就可以了。其他步驟和本地一樣。


這樣實現了開頭所要的功能。
————————————————
版權聲明:本文爲CSDN博主「寂書萬卷」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/github_36878269/article/details/80967388

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