1. 程式人生 > >Git服務器搭建與使用教程

Git服務器搭建與使用教程

mailto 回車 star cat sam tin 搭建git服務器 方便 rebase

Git服務器搭建與使用教程

參考:

1.廖雪峰的官方網站(很系統的git教程)

https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

2. https://www.linuxidc.com/Linux/2017-01/139457.htm

3. http://blog.csdn.net/sinat_33366020/article/details/73732769

由於項目開發的規模和復雜度越來越大,有時候需要同時多人在不同的嵌入式linux上開發代碼,在沒有用git管理時的解決辦法:

(1)手動將嵌入式linux上的工程代碼壓包拷貝到本地電腦進行編輯,然後將改好的代碼再拷貝回去解壓;

(2)用ssh遠程登錄到嵌入式linux,在線編輯代碼。

缺點總結:

拷貝壓縮包的方法很不方便,往往在嵌入式linux和本地電腦上留下很多中間壓縮包,有時候都不記得改動過的地方對應哪個壓縮包了,很不利於代碼版本管理與數據備份;ssh遠程登錄在線編輯代碼的方法很不穩定,一旦網絡不穩定,編輯立馬中斷,恢復起來很麻煩,同時要編輯多個文件時就更不方便了;於是痛定思痛,必須得把git代碼版本管理工具用起來,培養規範、標準化的開發素養。教程內容分為兩部分:git服務器搭建,git客戶端使用。

一、git服務器搭建

手裏剛好有一塊閑置的樹莓派3,於是準備在上邊搭建git服務器,git服務器的軟硬件環境如下:

硬件:樹莓派3

系統:ubuntu-mate-16.04

所需軟件:openssh-server openssh-client python-setuptools git

1.樹莓派3安裝ubuntu-mate-16.04系統

默認大家都已經在樹莓派3上安裝好了ubuntu-mate-16.04系統,如果沒有請參考以下教程自行安裝:

ubuntu mate 16.04鏡像文件下載地址:https://ubuntu-mate.org/download/

安裝參考教程:http://www.ncnynl.com/archives/201606/201.html

2.安裝git、ssh等軟件

$ sudo apt-get install git openssh-server openssh-client python-setuptools

3.新增用戶(用戶名為slamgit),用於運行git服務,回車後會提示輸入密碼

$ sudo adduser slamgit

4. 初始化git倉庫

$ mkdir /home/slamgit/code #這個目錄用於專門存放代碼

$ cd /home/slamgit/code

$ git init --bare test.git  #註意:加上--bare參數後,服務端是初始化的[裸倉庫]一般服務器上的Git倉庫都是以.git結尾的裸倉庫。

裸倉庫沒有工作區,因為服務器上的git倉庫是為了共享用,不能讓用戶直接登錄到服務器上去修改工作區中的代碼,用裸倉庫更加安全

現在服務器上面的git倉庫已經初始化完成,那接下來配置哪些用戶可以登錄到git服務器,進行git相關操作。

5.git服務器用戶登錄的配置

去需要登錄的git客戶端電腦上,生成公鑰:

$ ssh-keygen -t rsa

$ cd ~/.ssh/

$ scp id_rsa.pub [email protected]:/home/slamgit/ #將公鑰遠程拷貝到git服務器

繼續回到git服務器上:

$ cd /home/slamgit/

$ mkdir .ssh

$ cat id_rsa.pub >> .ssh/authorized_keys #將遠程拷貝過來的公鑰添加到認證文件中

$ chown -R slamgit:slamgit /home/slamgit #修改所有者為slamgit用戶

#修改以下目錄權限

$ chmod 755 /home/slamgit

$ chmod 700 .ssh

$ chmod 600 .ssh/authorized_keys

#修改ssh配置文件/etc/ssh/sshd_config,取消這行 AuthorizedKeysFile %h/.ssh/authorized_keys 前面的註釋

#重啟ssh

$ sudo service ssh restart

#為了安全禁止git用戶shell登錄,需要修改/etc/passwd

將git:x:1001:1001:,,,:/home/git:/bin/bash

改為git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

6.測試git服務器搭建是否成功

去git客戶端電腦上,clone剛才創建的test.git

$ git clone [email protected]:/home/slamgit/code/test.git

如果在git客戶端電腦上出現了test這個文件夾,就說明搭建成功了!!!

二、將本地文件上傳到git服務器

在git客戶端電腦上:

$ mkdir test.git

$ cd test.git

$ git init

$ echo "this is a test text file,will push to server" > hello.txt

$ git add .

$ git commit -m "init a base version,add a first file for push to server"

$ git remote add origin [email protected]:/home/slamgit/code/test.git

$ git push origin master

1.(先進入項目文件夾)通過命令 gitinit 把這個目錄變成git可以管理的倉庫

$ git init

2.把文件添加到本地版本庫中,使用命令git add 文件;添加到暫存區裏面去,如果後面接小數點“.”,意為添加文件夾下的所有文件

$ git add .

3.用命令git commit告訴Git,把文件提交到倉庫,引號內為提交說明

$ git commit –m "init a base version,add a first file for push to server"

這一步會報fatal的錯誤,需要執行如下命令設置自己的用戶名與email:

$ git config --global user.name "zhang **"

$ git config --global user.email "******@163.com"

4.關聯到遠程庫

$ git remote add origin 你的遠程庫地址

如:git remote add origin [email protected]:/srv/sample.git

如果上面步驟寫錯了:則

git remote rm origin //刪除origin

git remote add origin [email protected]:yourname/demo.git //重新添加origin

5.獲取遠程庫與本地同步合並(如果遠程庫不為空必須做這一步,否則後面的提交會失敗)

$ git pull --rebase origin master

6.將最新的修改推送到遠程倉庫

$ gitpush -u origin master #其中origin:遠程倉庫名字;master:分支

三、下一步的工作

繼續學習git的高級功能:

1.版本管理

版本回退

工作區和緩存區

管理修改

撤銷修改

刪除文件

2.分支管理

創建與合並分支

解決沖突

分支管理策略

Bug分支

Feature分支

多人協作

3.標簽管理

創建標簽

操作標簽

Git服務器搭建與使用教程