Git服務器搭建與使用教程
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服務器搭建與使用教程