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:Usersadmin.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.美文欣赏

git 使用

分支