- 一.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 的文章