Git與Gitlab

  1. 一.git與svn核心區別

git是分佈式的

svn,cvs等:非分佈式的版本控制系統

git更傾向被用於分佈式模式,也就是每個開發人員從中心版本庫/服務器上檢出代碼後會在自己的機器上克隆一個自己的版本庫。

可以這樣說,如果你被困在一個不能連接網絡的地方時,就像在飛機上,地下室,電梯裡等,你仍然能夠提交文件,查看歷史版本記錄,創建項目分支,等。對一些人來說,這好像沒多大用處,但當你突然遇到沒有網絡的環境時,這個將解決你的大麻煩。

2.git分支和svn的分支不同

分支在svn中一點不特別,就是版本庫中的另外的一個目錄。如果你想知道是否合併了一個分支,你需要手工運行命令,來確認代碼是否被合併。

然而,處理git的分支卻是相當的簡單和有趣。你可以從同一個工作目錄下快速的在幾個分支間切換。你很容易發現未被合併的分支,你能簡單而快捷的合併這些文件。

二、權限管理

我們的代碼之前是託管在公司的svn上, 現在是託管在公司的gitlab上.

具體的步驟是這樣子:

  • 用戶訪問公司gitlab地址
  • master權限用戶給其他用戶添加添加權限
  • 用戶安裝git or git客戶端
  • 用戶添加ssh

項目權限

  • private 私有, 項目必須顯式地為每個用戶訪問權授予。
  • internal 內部, 任何登錄用戶都可以克隆這個項目。
  • public 共有, 所有用戶都可以看到這個項目

用戶權限

  • guest 只能提issue
  • reporter 可以看文件, 不能上傳任何修改
  • developer 可以看, 可以上傳developer分支的修改, 可以建分支, 可以刪遠程分支. 不能上傳master分支的修改
  • master 都可以

wiki權限

  • guest 只能看
  • reporter 只能看
  • developer 可以增改頁面, 但是不能刪除頁面
  • master 可以增刪改

我先是為我們團隊建立了一個group, 然後默認所有人都是guest權限, 然後再單獨為每個項目為相關的開發開通developer權限, 為部分開發開通了master權限, 讓他們也可以自己分配自己的項目內的權限.

三、遷移

將舊代碼遷移到新平臺gitlab.yeepay.com.

遷移的時候, 凍結svn, 告知所有小夥伴禁止在svn上提交代碼, 今後統一換成git.

四、常用命令:

1、克隆git

git clone [email protected]:yce-pro/yce-pro101.git

2、創建新git

git clone [email protected]:yce-pro/yce-pro101.git cd yce-pro101

touch README.md

git add README.md git commit -m "add README" git push -u origin master

3、本地建git庫

cd existing_folder

git init git remote add origin [email protected]:yce-pro/yce-pro101.git

git add .

git commit -m "Initial commit"

git push -u origin master

4、已存在的git庫

cd existing_repo

git remote rename origin old-origin

git remote add origin [email protected]:yce-pro/yce-pro101.git

git push -u origin --all

git push -u origin --tags

5、查看git log

git log --pretty=format:"%h %s" --graph

在提交了若干更新之後,又或者克隆了某個項目,想回顧下提交歷史,可以使用 git log 命令查看。默認不用任何參數的話,git log會按提交時間列出所有的更新,最近的更新排在最上面。

6、git庫代碼回滾

git reset --hard 2c64fb30

git push origin HEAD --force

但要注意:master分支是不允許push回滾後的代碼到遠程庫的,原因是它被默認保護了,只有解除保護,才可push

切換分支

7、克隆指定分支到本地:

git clone -b 分支名 git庫地址

例子:

git clone -b release/rev1.0 [email protected]:git_test/git_test2.git

8、切換git分支

git checkout分支名

9、創建並切換

git分支

git checkout -b分支名

10、刪除git分支

git branch -D分支名


分享到:


相關文章: