- 一.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分支名
閱讀更多 KeepWriting 的文章