对Git和GitLab的使用作一个小结

GitLab基于Git,可以作为团队开发项目使用,因此通常会有一个主分支master和其他分支,因此项目成员中任意一人不能随意push到主分支中,容易引起混乱;

但如果项目中暂时只有自己一个人,那就可以操作master分支。

  1. 首先在服务器或者本地的项目里搞个公钥出来
ssh-keygen -t rsa -C "your_email@example.com"  #Gitlab的账户邮箱

如果在服务器上,则在主目录下,会有.ssh文件,里面应该产生了id_ras和id_rsa.pub两个文件,比如我服务器的路径是hyq/.ssh,用命令ls -a 即可查看所有隐藏文件

   2. cat id_rsa.pub打开这个文件,然后复制所有内容到GitLab的Profile Settings下的SSH Keys,这样就可以建立服务器和Gitlab的无密码连接了(默认已经在Gitlab上新建项目了)

   3.进入到项目目录下

git init #初始化

git add -A #把工作区文件放到暂存区,相当于缓存

git commit -m '描述' #把暂存区文件提交到分支

git remote add origin ssh://git@xx.xx.xx.xx:端口号/username/project.git #关联仓库

这里有几个要注意的地方,

  • 一个是GitLab上传的东西以文本文件为主,包括py,txt,log,org,csv等等,较大的数据模型以及缓存文件等其他文件或者目录就不要上传了,

因此可以写个.gitignore文件,里面把要忽略的文件写上去,比如我的.gitignore文件:

train、test、validation是目录,里面放着数据,因此后缀是\,best.mdl、nohup.out和__pycache__是文件,直接写上去进行。

  • 还有一个是万一不小心已经add了所有文件,那么这时再新建.gitignore已经来不及了,就要用以下命令
git rf --cache -A #把缓存区的文件删除,工作区的文件并不会删除

或者

git rf --cache  '目录名'

对于文件来说,则是

git rm --cached '文件名'

一定要带上--cached,不然只是git rm或者git rf的话,不仅删除暂存区的文件,也把工作区的文件删除了

  • 第三点,如果一开始建立的连接是http,想要变成ssh,那么必须先删除关联
git remote rm origin

然后,再建立新的关联

   4. 上传项目

git push -u origin master

这里有几个要注意的地方

  • 如果在GitLab上已经作了改动,比如新建了README.md文件,那么必须先pull下来,然后再push

    git pull origin master

  5.删除Git内容

  假如不小心把本地/服务器上的一个文件夹推送到了Gitlab仓库上,且已经commit了,此时想要删除远程仓库,但不想删除本地/服务器上的文件,此时可以如下操作:

git rm -r --cached  /src/MixPath_NAS #假设推送的是/src/MixPath_NAS文件夹,--cached不会把本地的MixPath_NAS删除
git commit -m 'delete /src/MixPath_NAS'
git push -u origin master

  6.回滚

   6.1

  回滚可以让本地已经修改并commit的内容回到任意版本,只需要代码:

  其中版本号通过git log查看

git reset --hard 版本号

  但是要注意的是,通过一次回滚从事件n到事件n-1,要是再想回到事件n,通过git log查看发现已经找不到事件n的版本号,此时可以通过

git reflog

查看

比如v2是最新的n事件,但是通过git log只能看到“添加源代码”,此时再次

git reset --hard c298e9f

就能回滚到事件n了

  6.2 git 撤销,放弃本地修改

git checkout -- filename

  此命令用来放弃掉所有还没有加入到缓存区(也就是git add)的内容修改和整个文件删除

  6.3  适用于撤销已经add后的本地修改

git reset HEAD filename

  7.修复线上紧急bug

  创建一个新的分支用于修复bug,修复完成后合并到主分支中去

GitLab使用小结的更多相关文章

  1. GitLab问题小结

    1.内存消耗太大 (1)公司使用gitlab后,发现服务器内存居高不下,使用top命令查看内存消耗,发现服务器上git将近消耗一半内存资源.而且很奇怪的是竟然开启了32个进程.后经查资料,原来这跟gi ...

  2. 大揭秘| 我司项目组Gitlab Flow && DevOps流程

    长话短说,本文全景呈现我司项目组gitlab flow && devops Git Flow定义了一个项目发布的分支模型,为管理具有预定发布周期的大型项目提供了一个健壮的框架. Dev ...

  3. Gitlab Flow到容器

    一.简介 长话短说,本文全景呈现我司项目组gitlab flow && devops Git Flow定义了一个项目发布的分支模型,为管理具有预定发布周期的大型项目提供了一个健壮的框架 ...

  4. GitLab API使用小结

    GitLab API使用小结 背景描述 需求描述: 最近因为工作上的需求,需要对GitLab进行大批量的操作,又因为服务器不在境内,所以所有的操作都需要连接VPN来进行FQ访问.目前大概有6000多个 ...

  5. gitlab小结

    部署Gitlab环境完整记录(我用的是11版本的gitlab,为了后面不出现bug,请选择11) gitlab启用https的配置 gitlab强制修改密码 https://www.cnblogs.c ...

  6. Ubuntu Docker 简单安装 GitLab

    相关博文: Ubuntu 简单安装 Docker Ubuntu 简单安装和配置 GitLab 服务器版本 Ubuntu 16.04 LTS. 1. 安装和配置 安装命令: sudo docker ru ...

  7. jenkins 设置 gitlab web hooks

    背景 接口自动化期望代码push后触发实现持续集成,代码push后,自动化执行jenkins的job. 步骤 准备工作 工具:jenkins,gitlab jenkins需要安装插件:git plug ...

  8. gitlab svlogd runsv 基于Rotated Log的日志统计

    小结: 1. 日志轮询 log roate 日志文件自动转存和重命名 2. rotated log独立于其他模块,可以以静态库或者动态库的形式支持二次开发: 3. [root@d1 ~]# gitla ...

  9. Linux系统搭建GitLab---阿里云Centos7搭建Gitlab踩坑

    一.简介 GitLab,是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目安装. 它拥有与GitHub类似的功能,能 ...

随机推荐

  1. Axure 日期函数详解

    时间函数详解 Now     根据计算机系统设定的日期和时间返回当前的日期和时间值.如:设置元件文本的值为:[[Now]]:输出:Mon Jan 08 2018 10:42:55 GMT+0800 ( ...

  2. 阅读之Java多线程

    Java多线程 用多线程只有一个目的,就是更好的利用cpu的资源,因为所有的多线程代码都可以用单线程来实现. 多线程:指的是这个程序(一个进程)运行时产生了不止一个线程 并行与并发: 并行:多个cpu ...

  3. zabbix监控Nginx模板

    前提条件: nginx模块安装了http_stub_status_module和nginx_upstream_check_module: 在nginx的配置文件中配置上: location /stat ...

  4. 'EF.Utility.CS.ttinclude' returned a null or empty string.

    需要安装https://www.microsoft.com/en-us/download/details.aspx?id=40762

  5. 数组 slice方法和splice方法的区别

    一.slice() 方法 slice()方法可以从已有的数组中返回选定的元素. 语法: arrayObject.slice(start,end) 参数: start:(截取开始位置的索引,包含开始索引 ...

  6. [Linux系统] (8)Nginx

    一.高并发基础架构 简要流程: 1.客户端发请求. 2.又LVS等四层负载均衡系统将请求转发给不同的Nginx服务器. 3.Nginx与客户端建立TCP连接,拿到请求后分析URI,然后将其转发给对应的 ...

  7. CF293E Close Vertices 点分治+树状数组

    开始zz写了一个主席树,后来发现写个树状数组就行~ #include <cstdio> #include <vector> #include <algorithm> ...

  8. 614A - Link/Cut Tree 数乘

    A. Link/Cut Tree time limit per test 2 seconds memory limit per test 256 megabytes input standard in ...

  9. Java回调

    最近在看Spring的JdbcTemplate,有碰到很多的回调场景,在这里做一个笔记. 示例: 公司的经理出差时打电话给你让你帮他处理件事情,但不能一直通着电话,于是他让你办好事情后打电话告诉他一声 ...

  10. C++读入神器——文操快读(oj也可以用)

    当某天,本蒟蒻沉迷于卡常的时候: 我-- 突然,YYKdalao说:用文操快读啊! 然后 喔-目瞪口呆 不多说,上源码: 本来用的读入方式: inline void Read( int &x ...