Ubuntu gitlab 操作手册

1、Ubuntu 配置 ssh Keys

打开电脑终端,生成ssh的key
输入命令:
    ssh-keygen -o -t rsa -b 4096 -C "登录邮箱"
注意: -C 后面的邮箱,是你自己注册的时候的邮箱
成功之后的结果

2、gitlab中添加ssh key

终端输入:cat ~/.ssh/id_rsa.pub,将你的key拷贝出来添加到gitlab中设置中,Add key。

3、本机使用git

3.1 git 全局配置 Git global setup

    填写自己的用户名和邮箱
        git config --global user.name "***"
        git config --global user.email "****@qq.com"

3.2 创建新的项目 Create a new repository

    git clone 网址.git
    cd 项目文件家
    touch README.md
    git add README.md
    git commit -m "操作意义"
    git push -u origin master

3.3 上传已有的项目 Push an existing folder

    cd existing_folder
    git init #初始化工作目录
    git status # 查看git工作区的状态信息
    git remote add origin 网址.git

    git add . # 添加文件 到暂存区域
    git commit -m "Initial commit" # 提交暂存区区域文件到git本地仓库 # -m 之后的表示标注,说明信息 -a表示直接添加文件
    git push -u origin master

4、常用的命令

    tree .git/   #存储所有历史版本信息即配置文件,是通过git init生成的目录
    add #添加文件内容至索引
    branch #列出、创建或删除分支
    checkout #检出一个分支或路径到工作区
    clone #克隆一个版本库到一个新目录
    commit #记录变更到版本库
    init #创建一个空的 Git 版本库或重新初始化一个已存在的版本库
    log #显示提交日志
    merge #合并两个或更多开发历史
    mv #移动或重命名一个文件、目录或符号链接
    pull #获取并合并另外的版本库或一个本地分支
    push #更新远程引用和相关的对象
    rm #从工作区和索引中删除文件
    show #显示各种类型的对象
    status #显示工作区状态
    tag #创建、列出、删除或校验一个GPG签名的 tag 对象

4 暂存区数据操作

4.1 git删除数据

01. 未添加到暂存区的数据->直接使用rm命令删除即可
02.已添加到暂存区的数据
   1 git rm --cached database 2 #将文件从git暂存区域的追踪列表移除,并不删除当前工作目录内的数据文件->只删除缓存 3 git rm -f database 4 #将文件数据从git暂存区和工作目录一起删除->永久删除 

4.2 git重命名数据

01.未添加到暂存区的数据->直接mv/rename改名即可
02.已添加到暂存区数据
 1 git mv README NOTICE # README修改前/NOTICE修改后;最后进行提交git仓库 2 注意:也可mv修改名称→删除git仓库的文件快照git rm '*.txt'→将新的文件添加进去→提交git仓库 

5 历史记录数据

5.1 查看历史记录

    git log #查看提交历史记录
    git log -2 #查看最近几条记录
    git log -p -1 #-p显示每次提交的内容差异,例如仅查看最近一次差异
    git log --stat -2 #--stat简要显示数据增改行数(能够看到提交中修改过的内容,对文件添加或移动的行数,并在最后列出所有增减行的概要信息)
    git log --pretty=oneline #--pretty根据不同的格式展示提交的历史信息
    git log --pretty=fuller -2 #以更详细的模式输出提交的历史记录
    git log --pretty=fomat:"%h %cn" #查看当前所有提交记录的简短SHA-1哈希字串与提交着的姓名

使用format参数来指定具体的输出格式
    %s 提交说明
    %cd 提交日期
    %an 作者的名字
    %cn 提交者的姓名
    %ce 提交者的电子邮件
    %H 提交对象的完整SHA-1哈希字串
    %h 提交对象的简短SHA-1哈希字串
    %T 树对象的完整SHA-1哈希字串
    %t 树对象的简短SHA-1哈希字串
    %P 父对象的完整SHA-1哈希字串
    %p 父对象的简短SHA-1哈希字串
    %ad 作者的修订时间

5.2 还原历史记录

    Git服务程序中有一个版本指针HEAD,当用户申请还原数据时,将HEAD指针指向到某个特定的提交版本。但Git为避免历史记录冲突用SHA-1算出十六进制的哈希字串来区分提交版本。默认HEAD指针会指向到最近一次提交记录,上一个提交版本即HEAD^,上上一个版本即HEAD^^ (HEAD~5简化表示往上数第五个提交版本)
    git reset --hard HEAD^ #还原历史提交版本上一次
    git reset --hard 3de15d4 # 还原到制定节点的历史点 找到历史还原点的SHA-1值后,就可以还原(值未写全时系统会自动匹配) 

5.3 还原未来数据

即还原到历史数据后想再次撤销更改,但是git log已经找不到这个版本了
    git reflog #查看未来历史更新点 

5.4 标签使用(于commit之后)

    git tag v1.0 #当前提交内容打一个标签(方便快速回滚),每次提交都可以打个tag
    git tag #查看当前所有的标签
    git show v1.0 #查看当前1.0版本的详细信息
    git tag v1.2 -m "version 1.2 release is test" 5 #对当前版本(最新)打标记,用于commit提交之后接着进行打标记(-a指定标签名,-m为说明信息)
    git tag -d v1.0 #我们为同一个提交版本设置了两次标签,删除之前的v1.0

6 分支管理

    在实际的项目开发中尽量保证master分支稳定,仅用于发布新版本,平时不要直接修改里面的数据文件。而开发都在dev分支进行修改,即每个人从dev分支创建自己个人分支,开发完合并到dev分支,最后合并到master分支

6.1 创建分支

    git branch linux #创建分支
    git branch #查看分支情况,当前分支前有*号
    git checkout linux #Switched to branch 'linux' 切换分支
    git checkout --<file> #一键还原,直接将git仓库的文件覆盖当前文件[危险]

6.2 合并分支(自动合并)

需求:把linux的工作成果合并到master分支上

    git checkout master #切换到master分支
    git merge linux #合并Linux分支至master
    git branch -d linux #确认合并完成后,建议删除分支 

注意:系统默认不编辑空分支

6.3 合并冲突模拟(手动合并)

注意:只有同目录同文件同行才会造成合并冲突的情况,只要有一点不同就能够进行合并

01.准备:
    cd git_data
    echo 'master code' >>README
    git commit -a -m 'this master branch commit'
    git checkout linux
    cat README
    echo 'linux code' >>README
    git commit -a -m 'this linux branch second commit'
    git checkout master

02.现象:
    # git merge linux
    Auto-merging README ->自动合并 README
    CONFLICT (content):Merge conflict in README ->冲突(内容):合并冲突于 READM
    Automatic merge failed; fix conflicts and then commit the result.
    ->自动合并失败;修正冲突然后提交修正的结果

03.解决:人工选择想要的内容,同时修改master和linux分支同文件并提交,最后merge

    # vim README
    this is linux branch hello world
    master code
    linux code
    # git commit -a -m '解决合并冲突'
    [master 19cb918] 解决合并冲突
    # git merge linux
    Already up-to-date.

 

4 删除分支

由于之前已合并了linux分支,故现在看到它在列表中,在这个列表中分支名字前没*号的分支通常可用git branch -d删除且不会失去任何东西
    # git branch --no-merged #查看所有包含未合并工作的分支testing
    # git branch -d testing ->删除分支
    error: The branch 'testing' is not fully merged. ->分支'testing'未进行合并
    If you are sure you want to delete it, run 'git branch -D testing'. ->若确定想删除它,即使用-D强制删除

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章