遠程Ubuntu系統(tǒng)上git服務(wù)器的搭建
1、遠程Ubuntu系統(tǒng)安裝SSH
1.1杈笔、terminal下鍵入命令進行安裝:" sudo apt-get install openssh-server openssh-client ";
1.2闪水、[此步驟可以不操作,如果不操作蒙具,則SSH的端口號就為默認的22]termianl下鍵入命令" sudo vi /etc/ssh/sshd_config "
打開ssh配置文件并編輯球榆,導(dǎo)航至行" #port 22 ",
將22修改為你想要修改為的端口號禁筏,并刪去"#"持钉,將該行代碼去除注釋化并生效,最后操作vi保存修改篱昔;
1.3每强、terminal下鍵入命令來重啟ssh服務(wù):" sudo service sshd restart "或者" sudo /etc/init.d/sshd restart ";
2州刽、遠程Ubuntu系統(tǒng)安裝git
2.1空执、terminal下鍵入命令進行g(shù)it安裝:" sudo apt-get install git-core "
或者鍵入如下命令進行所要求版本號的源碼安裝:
" wget https://github.com/git/git/archive/X.X.X.tar.gz(X.X.X代表你所需要的git版本號) "下載git安裝包;"
tar zxvf git-X.X.X.tar.gz "解壓git安裝包到當(dāng)前目錄怀伦," cd git-X.X.X "進入git安裝包被解壓后的目錄脆烟,
" make && make install "對git源碼進行編譯并生成可執(zhí)行文件山林,
" ln -s /usr/local/git/bin/* /usr/bin/ "將生成的git可執(zhí)行文件鏈接到系統(tǒng)的可執(zhí)行程序目錄房待;
2.2、使用命令" git --version "來查看是否安裝成功以及安裝的git版本號驼抹。
3桑孩、上傳Windows系統(tǒng)SSH公鑰到遠程Ubuntu系統(tǒng)
3.1、本地Window系統(tǒng)下框冀,下載git Windows版并安裝流椒,打開Git Bash,
運行命令" ssh-keygen -t rsa "明也,會在Windows系統(tǒng)的用戶目錄下隱藏目錄ssh(如:C:\Users\Administrator\.ssh)
下生成id_rsa(私鑰)和id_rsa.pub(公鑰)宣虾;
3.2、本地Window系統(tǒng)下温数,Git Bash下導(dǎo)航到保存公鑰的目錄" cd C:\Users\Administrator\.ssh "绣硝,將公鑰改名" mv id_rsa.pub id_rsa_xxx ",
并運行命令" scp -r id_rsa.pub_xxx username@xxx.xxx.xxx.xxx:/home/username/.ssh/ "
(此命令中的.ssh目錄必須為遠程Ubuntu服務(wù)器上的絕對路徑撑刺,不能寫為~/.ssh)
將公鑰上傳到ip地址為xxx.xxx.xxx.xxx的遠程Ubuntu系統(tǒng)用戶名為username的主目錄下的隱藏文件夾.ssh
[需要你輸入ip地址為xxx.xxx.xxx.xxx的遠程Ubuntu系統(tǒng)的用戶username的登錄密碼]鹉胖;
3.3、遠程Ubuntu系統(tǒng)terminal下將Windows系統(tǒng)上傳來的公鑰復(fù)制到authorized_keys文件中:
" cat /home/username/.ssh/id_rsa_xxx >> /home/username/.ssh/authorized_keys "。
4甫菠、在遠程Ubuntu系統(tǒng)創(chuàng)建項目倉庫
4.1挠铲、遠程Ubuntu系統(tǒng)terminal中鍵入命令創(chuàng)建git項目:" mkdir Respository; cd Respository; mkdir Code-Waver.git ";
4.2寂诱、設(shè)置該項目目錄的讀寫權(quán)限:" chmod 775 -R Code-Waver.git/"拂苹;
4.3、進入項目目錄中運行命令對git項目進行初始化:" git --bare init "痰洒,
出現(xiàn)Initialized empty Git respository in /home/username/Respository/Coder-Waver.git/時代表初始化成功醋寝。
4.4、這樣一個叫Code-Waver的git倉庫就創(chuàng)建好了带迟。
遠程Ubuntu系統(tǒng)上git服務(wù)器的使用測試
本次測試的內(nèi)容為實現(xiàn)不同git倉庫之間的同步音羞,為了方便操作我們選取的是位于同一個Windows系統(tǒng)的兩個不同目錄,其實現(xiàn)是以遠程Ubuntu系統(tǒng)上的git服務(wù)器為中介仓犬,如下圖嗅绰。
(圖片來源:https://i.stack.imgur.com/tRfgX.png)
1、在Windows系統(tǒng)下選擇或者創(chuàng)建的git倉庫目錄搀继,Git Bash下鍵入命令:" cd e:; cd Respository; mkdir Code-Waver "窘面;
2、Windows系統(tǒng)對git倉庫進行相關(guān)設(shè)置:" git config --global core.autocrlf false "(禁用自動轉(zhuǎn)換叽躯。windows中的換行符為 CRLF财边,
而在Linux下的換行符為LF)," git config --global core.quotepath false "(解決git status顯示中文文件名時亂碼)点骑;
3酣难、git倉庫的初始化:" git init ";
4黑滴、本地git倉庫指定git服務(wù)器上的遠程倉庫憨募,并獲取遠程Ubuntu系統(tǒng)git服務(wù)器中最新項目:
" git remote add origin username@xxx.xxx.xxx.xxx:/home/usernmae/Respository/Coder-Waver.git;
git clone username@xxx.xxx.xxx.xxx:/home/usernmae/Respository/Coder-Waver.git "
(此命令中g(shù)it倉庫目錄必須為遠程Ubuntu服務(wù)器上的絕對路徑,不能寫為~/.ssh)袁辈;
5菜谣、在從遠程拉取下來的項目目錄創(chuàng)建一個文件,并提交到遠程Ubuntu系統(tǒng)git服務(wù)器上:
" touch a.md; vi a.md; git add a.md; git commit -m "test for git server"; git push origin master"晚缩;
6尾膊、新開一個Git Bash程序,導(dǎo)航至另一個目錄荞彼,clone下來遠程Ubuntu系統(tǒng)中g(shù)it服務(wù)器的項目:
" git clone username@xxx.xxx.xxx.xxx:/home/usernmae/Respository/Coder-Waver.git "冈敛。
7、clone完成后卿泽,應(yīng)該可以在該目錄下看到我們在Windows系統(tǒng)下另一個目錄創(chuàng)建的a.md文件莺债,
你可以打開a.md看看是不是和我們剛才提交的a.md文件內(nèi)容一樣滋觉。此測試在Windows系統(tǒng)下的兩個目錄進行測試,
第一個目錄是工作區(qū)一齐邦,第二個目錄是工作區(qū)二椎侠,
在第一個工作區(qū)創(chuàng)建文件并提交該文件到遠程Ubuntu系統(tǒng)下的git服務(wù)器,而后拉取遠程Ubuntu系統(tǒng)git服務(wù)器的項目到工作區(qū)二措拇。
你會發(fā)現(xiàn)工作區(qū)一提交的項目更新我纪,出現(xiàn)在工作區(qū)二,這就是git服務(wù)器存在的意義丐吓。