gitlab
1. 使用场景
gitlab 官网开源环境 、 公司内部部署 gitlab 环境
2. 基本原理
分三块区域:工作区、缓存区、仓库,通过命令行传递数据。
3.基本配置
配置用户名与邮箱:
git config --global user.name xxxxx
,
git config --global user.email xxx@x
有以下几种方式:
vscode 终端控制台 (推荐) ( vscode : 退出 git,切换回 powershell,使用 q 键 )
文件夹右键打开git bash
cmd git config --global --edit
4.常用命令
git init 在当前文件夹创建一个git仓库
git add
从当前文件夹添加文件到暂存区域 git add hello.html 添加当前目录下的指定文件 (加空格分割路径) git add . 添加当前文件夹
git commit -m "do what" 从暂存区域提交代码到代码仓库,提交说明为 “do what”
git diff
用来比较仓库,暂存区,工作目录的不同
git reset git reset HEAD~
用来回退到上个提交的版本,做了两件事:1.修改了HEAD指向(仓库当前版本回退到上个),2.将仓库上个版本的文件覆盖到暂存区域,用以丢弃上次的提交,(工作目录,文件夹中的文件还没变)
git log
查看版本提交记录
git log --oneline --decorate --all --graph
显示简单摘要的办法
git status
查看git仓库当前状态
git branch 查看分支
git branch xxx 创建分支 git branch -d 分支名字A //删除指定分支A
git checkout
xxx 切换分支 git checkout
-b xxx 创建并切换分支
git merge 合并分支 git merge dep 合并dep与当前分支
git clone url 下载远程代码
git pull 拉取/ 同步 仓库代码 git pull origin master 拉取远程指定分支(master)
git push 推送/ 上传 暂存区代码至仓库 git push origin now 推送指定分支(now)至远端 git push -f 强制推送到远程分支
4.1 通用 git 命令
git branch -a 查看所有分支 包括远端
git checkout dev 切换分支
git checkout -b mine 新建分支
git branch -d dev 删除本地分支
git push origin :dev 删除远端分支
git reset --hard head^ 回退到上次提交
git log / git reflog
git reset --hard sddka 回退到指定版本
5. 实例
5.1 登陆你的网站 https://gitlab.youcompany.cn/
5.2 确认你将要拉取的代码权限 ( 即是否允许你上传下载该项目代码:项目有没有对你开放? 有没有把你加到项目开发成员列表? )
5.3 配置你的git: 打开 vscode 终端控制台( ctrl + ~ ) - 键入 git config --global user.name xxxxx git config --global user.email xxx@x
- 回车
5.4 在本地选好文件夹 - 命名 - vscode 控制台切换到该文件夹目录下 ( cd ../my )
5.5 拉取代码 git clone https://gitlab.youcompany.cn/my/new-space.git ( 此 URL 为你项目对应 https 选项下的地址)
5.6 切换到项目文件 > cd new-space
5.7 在本地文件夹( 工作区 )上随意编辑
5.8 添加到暂存区 git add .
5.9 上传到仓库且添加备注 git commit -m 'add files'
5.10 提交推送请求 git push
5.11 登录你的网站 https://gitlab.youcompany.cn/ - 切换到所在项目 - 选择左侧菜单 Merge Requests - 选择 New merge request 进行分支合并 - 选择好 Source branch 与 Target branch 合并即可
( 创建分支 再合并 也可在 vscode 终端控制台完成 ,上述操作也可在网页进行,如果只是少量文件的话。。 怎么方便怎么来吧 )
6. 其他
6.1 如果 不想看到 ssh 不存在提示,可以给自己配一个:
git bash 键入 :
ssh-keygen -t rsa -C 'xx-name@xx-email.com.cn'
或者 ssh-keygen -t rsa -C 'xx-name@xx-email.com.cn' -f ~/.ssh/gitlab-rsa
( C:\Users\admin\.ssh )
生成的文件夹内容复制出来贴到 设置里对应内容即可
6.2 控制台 合并分支: 切换到要合并的目的分支 如 master - git pull 更新代码 - git merge 要合并的分支 如 dep - git commit - git push
6.3 多分支切换 前一般要提交改动至缓存区 git add hello.txt git commit -m 'add now'
6.4 代码回滚 切换到需要回滚分支 git checkout now - 查看版本号 git log - 回退至指定版本 git reset --hard 37591b335cef182fce07a5567671174d482c484c / git reset HEAD
6.4.1 代码回滚2 查询提交记录 git reflog - 提交回滚请求 git reset --hard HEAD~1 - 强行推送 git push -f (
若提示 无权限回滚,设置默认 master 保护取消掉: settings - Repository - Protected Branches - Unprotect
)
6.4.2 代码回滚3 git log --oneline - git reset --hard commitID号 - git push -f
6.5 git log git log --oneline git reflog 区别
git log 仅看到少数几条信息
git log --oneline 可以看到当前存在所有信息
git reflog 查看所有曾经存在信息,并可回滚至指定版本 ( 通常使用非 master 分支,使用其他分支回滚代码影响较小 虽然提交命令啥的多了行代码 :git pull origin dep )
6.6 SSL certificate problem: certificate has expired
git config --global http.sslVerify false
7.美文欣赏