zoukankan      html  css  js  c++  java
  • gitlab使用说明

    # gitlab使用说明

    ## 1. gitlab启动

        $ gitlab-ctl   start

    ## 2. 在gitlab的网站创建一个project

    (1)定一个项目名,选定相关的项目设置,这里我们定义为private  
    (2)项目创建成功后得到项目
    git@192.168.1.153:tx/tx_project.git 的地址,可用于将project从远程pull下来或者push上去。

    ## 3. 关于ssh key的设置

    ### 3.1 安装git  

        $ apt install git  

    (2) 设置Git的 user name 和email(如果是第一次的话) 设定本机用户名,绑定邮箱,让远程服务器知道机器的身份 
     
        $ git config --local user.name "用户名"  
        $ git config --local user.email "邮箱"
      
    (3) 生成密匙  
    这里输入你的邮箱,生成一个与邮箱相对应的key  

        $ ssh-keygen -t rsa -C "邮箱"  
    连续三个回车,如果不需要密码的话。   
    最后得到两个文件:id_rsa和id_rsa.pub   
    SSH 公钥默认储存在账户的主目录下的 ~/.ssh 目录 
     
    (4) 添加密匙到ssh-agent  
    确保 ssh-agent 是可用的。ssh-agent是一种控制用来保存公钥身份验证所使用的私钥的程序,其实ssh-agent就是一个密钥管理器,运行ssh-agent以后,使用ssh-add将私钥交给ssh-agent保管,其他程序需要身份验证的时候可以将验证申请交给ssh-agent来完成整个认证过程。   
    添加生成的 SSH key 到 ssh-agent。
      
        $ ssh-add ~/.ssh/id_rsa  
    <font color=red>注意:如果报错Could not open a connection to your authentication agent.  
    执行 ssh-agent bash   
    再执行ssh-add ~/.ssh/id_rsa可解决</font>

    ## 4. 完善新建的项目

    ### 4.1 设定本机用户名,绑定邮箱,让远程服务器知道机器的身份

        $ git config --local user.name "用户名"  
        $ git config --local user.email "邮箱"
    ### 4.2 如果你没有最新的代码,希望从头开始,下面展示在你希望pull过来的文件夹下

        $ git clone git@192.168.1.100:xx/xxx.git //这里是项目的地址(可从项目主页复制),将远程服务器的内容完全复制过来  
        $ cd xxx                       //clone 之后进入该项目的文件夹  
        $ touch README.md                    //新建readme文件  
        $ git add README.md                  //将新的文件添加到git的暂存区  
        $ git commit-m ‘first commit(注释)’ // 将暂存区的文件提交到某一个版本保存下来,并加上注释  
        $ git push -u origin master          //将本地的更改提交到远程服务器

    ### 4.3 如果你已经有一个新版代码,希望直接把本地的代码替换到远程服务器

        $ cd aa                         //进入代码存在的文件夹  
        $ git init                      //初始化,会生成一个.git文件夹  
        $ git remote add origin git@192.168.1.100:xx/xxx.git  //添加远程项目地址(可从项目主页复制)  
        $ git add .                      //添加该文件夹中所有的文件到git的暂存区  
        $ git commit -m ‘注释’           //提交所有代码到本机的版本库  
        $ git push -u origin master     //将本地的更改提交到远程服务器

    <font color=red>注:如果报错fatal: remote origin already exists.  
    先输入git remote rm origin  
    再git remote add origin git@192.168.1.100:xx/xxx.git</font>

    ## 5. 版本穿梭

    版本回退  
    在Git中,我们用git log命令查看:   
    每一个提交的版本都唯一对应一个commit版本号,   
    现在,我们要把当前版本回退到上一个版本,就可以使用git reset命令:
      
        $ git reset --hard HEAD^  
    这个时候,最新的版本就被上一个版本覆盖了,继续用git log就找不到了。这个时候,如果想恢复到原来的版本,只要找到原来的commit版本号就可以了。  

        $ git reflog //查看命令历史,以便确定要回到哪个版本  
        $ git reset --hard commit_id //比如git reset --hard 3628164(不用全部输入,输入前几位即可)
     
    ## 6. git分支管理

    ### 6.1 创建与合并分支

    我们创建dev分支,然后切换到dev分支: 
     
        $ git checkout -b dev  
    git checkout命令加上-b参数表示创建并切换,相当于以下两条命令: 
     
        $ git branch dev  
        $ git checkout dev  
    然后,用git branch命令查看当前分支, 
      
        $ git branch //命令会列出所有分支,当前分支前面会标一个*号  
    然后,我们就可以在dev分支上正常提交. 
         
        $ git add readme.txt  
        $ git commit -m "branch test"  
    dev分支的工作完成,我们就可以切换回master分支: 
     
        $ git checkout master  
    切换回master分支后,再查看一个readme.txt文件,刚才添加的内容不见了!因为那个提交是在dev分支上,而master分支此刻的提交点并没有变 
    现在,我们把dev分支的工作成果合并到master分支上:
      
        $ git merge dev  
    git merge命令用于合并指定分支到当前分支。合并后,再查看readme.txt的内容,就可以看到,和dev分支的最新提交是完全一样的。  
    注意到上面的Fast-forward信息,Git告诉我们,这次合并是“快进模式”,也就是直接把master指向dev的当前提交,所以合并速度非常快。  
    当然,也不是每次合并都能Fast-forward,我们后面会讲其他方式的合并。
    合并完成后,就可以放心地删除dev分支了:  

        $ git branch -d dev  
    删除后,查看branch,就只剩下master分支了. 

    ### 6.2 解决冲突

    准备新的feature1分支,继续我们的新分支开发: 
     
        $ git checkout -b feature1  
    修改readme.txt最后一行,改为:   
    Creating a new branch is quick AND simple.   
    在feature1分支上提交:
      
        $ git add readme.txt   
        $ git commit -m "AND simple"  
    切换到master分支:
      
        $ git checkout master  
    Switched to branch 'master'  
    Your branch is ahead of 'origin/master' by 1 commit.  
    Git还会自动提示我们当前master分支比远程的master分支要超前1个提交。   
    在master分支上把readme.txt文件的最后一行改为:   
    Creating a new branch is quick & simple.
      
        $ git add readme.txt 
        $ git commit -m "& simple"  
    现在,master分支和feature1分支各自都分别有新的提交,  
    这种情况下,Git无法执行“快速合并”,只能试图把各自的修改合并起来,但这种合并就可能会有冲突,我们试试看:  

        $ git merge feature1  
    Auto-merging readme.txt  
    CONFLICT (content): Merge conflict in readme.txt  
    Automatic merge failed; fix conflicts and then commit the result.  
    果然冲突了!Git告诉我们,readme.txt文件存在冲突,必须手动解决冲突后再提交。git status也可以告诉我们冲突的文件;   
    我们可以直接查看readme.txt的内容:  
    Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容,我们修改后保存再提交:
      
        $ git add readme.txt 
        $ git commit -m "conflict fixed"  
    [master 59bc1cb] conflict fixed
    最后,删除feature1分支:  

        $ git branch -d feature1  
    Deleted branch feature1 (was 75a857c).

    ## 7. 删除gitlab上的文件夹

        $ git rm -r --cached .setting       //--cached不会把本地的.setting删除  
        $ git commit -m 'delete .setting dir'[注释]   
        $ git push -u origin master  

    众志成城,共抗疫情
  • 相关阅读:
    ASP.NET中26种性能优化方法
    ASP.NET中常用的26个优化性能方法
    ASP.NET页面事件:顺序与回传详解
    ASP.NET控件属性大全
    ADO.NET数据库编程
    ado.net笔记
    98内存管理
    23个常用正则表达式(数值和字符串)
    web中用纯CSS实现筛选菜单
    Unity3D脚本:C#计时类脚本
  • 原文地址:https://www.cnblogs.com/wuli1427102168/p/9953449.html
Copyright © 2011-2022 走看看