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分支名


分享到:


相關文章: