學習搭建Git伺服器和多人協作開發

2021-07-10 18:46:35 字數 4315 閱讀 6859

一,搭建git伺服器》

環境基於ubuntu-12.04

專案伺服器管理員:

使用者新增及ssh rsa登入(免密登入)

1.新建乙個工程使用者,作為該項目的ssh登入使用者   也是git**的存放目錄

#su root

#adduser gittest(快捷建立使用者)

2.新增所有專案成員的ssh公鑰

切換到新的賬號

#su gittest

新建.ssh目錄,/home/gittest/.ssh/

#mkdir /home/gittest/.ssh

在該目錄新建

authorized_keys檔案

#touch   

authorized_keys

拷貝專案成員ssh公鑰到此目錄

(注意是ssh-rsa打頭的!!!,檢查是否出錯)

驗證ssh是否能免密登入:(預設埠22,這裡修改伺服器ssh埠號,具體使用和伺服器管理員確認)

專案成員在自己的系統下

ssh -p 2222 [email protected](注意-p後面跟伺服器sshd的埠號,gittest是ssh的使用者名稱,222.20.20.20是伺服器的ip

能登入則說明免密成功,接下來才能做git的相關工作

3.建立好git**的倉庫目錄,這個只作為儲存**的,不能執行git的一般操作。

git --bare init /home/gittest/test.git

(git目錄下;而使用--bare選項時,不再生成.git目錄,而是只生成.git目錄下面的版本歷史記錄檔案)

專案成員:

1.生成ssh rsa公鑰

# ssh-keygen –t rsa -c "[email protected]"

生成的預設路徑是~/.ssh/id_rsa.pub (公鑰),這個公鑰是要給專案伺服器管理員的。

2.待專案主管push到伺服器之後

#git clone gittest@

qiyangserver

:/home/gittest/test2.git

(qiyangserver

cat>~/.ssh/config

# 對映乙個別名

host qiyangserver

hostname 282.20.20.20

port 2222

)#cd 到新建的**目錄

#git branch -a

同步開發者分支或其他你需要的工作分支到本地

#git 

git checkout -b develop origin/develop

3.git commit -a -m "你的提交說明"

(這個可以不要,預設origin已經新增) 4.git remote add origin gittest@

qiyangserver

:/home/gittest/test2.git

4.也許remote已經有更新,如果你的**沒有給其他人共享,可以使用git pull --rebase或者 git fetch

(這樣不會做歸併操作,也可以同步最新的分支)

另外兩個相關的命令是: git pull和 git pull --rebase。

這兩個的區別在於前者是git fetch + git merge,後者是git fetch + git rebase。

5.git push origin develop 上傳分支。

專案主管:

1.做出專案原型

#git init

#git add -a

#git commit  -m "專案說明"

建立開發分支

#git checkout -b develop

2.新增遠端源

#git remote add origin gittest@qiyangserver:/home/gittest/test2.git

(注意是否有同名remote!!! )

(qiyangserver

cat>~/.ssh/config

# 對映乙個別名

host qiyangserver

hostname 282.20.20.20

port 2222

)3.推送至專案伺服器

# git push origin master

4.推送develop分支到專案伺服器

#git push origin develop

5.指定本地分支和遠端分支的關係,否則git pull不下來

(但是能git push上去) 。  git branch --all 可以檢視local和remote的對應關係

#git branch --set-upstream-to=origin/develop develop

6.專案主管做自己的事

提交前先統一一下版本

#git pull --rebase 

(rebase作用詳解指令詳解)

7.git push origin develop 提交到develop分支

這裡簡單解釋一下rebase

git pull

--rebase

重整是線性的。如ubuntu-file3之前的幾次

二,多人協作開發》

關鍵是分支的建立(master, develop, feature, hot-fix) 和理解 詳解

feature分支

從develop分支發出,最終歸併到develop分支

#git checkout -b  newfeture develop

#git push origin 

newfeture

關聯分支

#git branch --set-upstream-to=origin/newfeture

newfeture

分支完成時,切到develop分支,merge該newfeture分支

#git checkout develop

歸併newfeature分支,使用--no-ff屬性,能夠知道這是乙個feature遞交版本過程,容易追溯,如下圖的newfeature提交

release分支

當新的feature足夠多,準備發布新的版本號版本。 同樣從develop出發,最終用於更新到master分支.該版本不新增新的feature或大的改動

# git checkout -b release-1.0 develop

#git push  origin release-1.0

#git branch --set-upstream-to=origin/

release-1.0 

release-1.0

通過測試,沒有明顯bug,發布到master

# git checkout master

#git merge --no-ff release-1.0

#git tag -a v1.0 (tag就是乙個唯讀的branch,一般為每乙個可發布的里程碑版本打乙個tag. 里程碑標記。 也可以被checkout)

#git push origin master

切到develop分支,也歸併發布版的改動

#git checkout develop

#git merge --no-ff release-1.0

刪除release分支

# git branch -d release-1.0

hot-fix分支

類似於release分支,只不過該分支是處理bug的,從master分支出來

#git checkout -b hotfix-1.1.1 master

同上需要歸併到master和develop

# git tag -a 1.2.1

刪除hotfix

分支

# git branch -d hotfix-1.1.1

Git學習之多人協作

多人協作時,從遠端轉殖時,預設情況下,只能看到master分支 git checkout b dev origin dev建立遠端origin的dev分支到本地 git branch set upstream to origin dev dev建立本地分支與遠端分支的關聯 多人協作時,試圖用 git...

Git學習 搭建Git伺服器

搭建環境 伺服器端 centos 6.5 ip 192.168.101.129 客戶端 centos 6.5 windows 伺服器端 建立repository版本庫,例如 srv test.git git init bare 建立乙個裸倉庫,沒有工作區,目的是不讓使用者直接登入到伺服器上去改工作區...

團隊協作Repo伺服器搭建

概述 repo只是乙個工具,可以管理多個git倉庫。它是谷歌為管理龐大的安卓原始碼而封裝的一套指令碼,git才是實際的版本管理工具。文章只是描述了大概步驟,部分細節不做講解。repo配置檔案 repo管理多個git倉庫,通過配置檔案default.xml指定 name origin fetch ss...