对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. javaweb 一个坑—— writer必须放在response相关设置后面

    https://blog.csdn.net/weixin_33962621/article/details/86454414

  2. UVA - 11996 Jewel Magic (Treap+二分哈希)

    维护一个01序列,一共四种操作: 1.插入一个数 2.删除一个数 3.反转一个区间 4.查询两个后缀的LCP 用Splay或者Treap都可以做,维护哈希值,二分求LCP即可. 注意反转序列的时候序列 ...

  3. ln: /usr/bin/mysql: Operation not permitted

    一.背景 前段时间装mysql,就遇到了ln: /usr/bin/mysql: Operation not permitted的错误,网上好多方法都过时了,下边是我的解决方法 执行 sudo ln - ...

  4. nginx设置负载均衡

    ...... why负载均衡,随着企业业务增长和海量请求,给服务端造成海量并发,导致响应不及时需扩容后端服务,前端需要负载均衡,均摊请求,让服务端吞吐请求的能力提升 单点服务方式,一个点挂掉整个服务就 ...

  5. Vue.use() 方法

    1.本人在学习Vue时,会用到 Vue.use() .例如:Vue.use(VueRouter).Vue.use(MintUI).但是用 axios时,就不需要用 Vue.use(axios),就能直 ...

  6. 【shell&awk】对数据从右到左隔三位来一个.

    chinaunix 上看到这么一题: echo 12345678.12|sed **** 期望达到效果: 12,345,678.12 我的解法是先把字符串反转,然后根据‘.’分割,分割完成后对$2部分 ...

  7. shell练习--PAT试题1010:一元多项式求导 (25 分)(失败案例喜加一)

    ---恢复内容开始--- 1010 一元多项式求导 (25 分) 设计函数求一元多项式的导数.(注:x​n​​(n为整数)的一阶导数为nx​n−1​​.) 输入格式: 以指数递降方式输入多项式非零项系 ...

  8. Burpsuite的Intruder模块发现敏感目录

    提前配置好浏览器的代理设置,并且成功访问了目标地址(这里是http://192.168.146.133/WackoPicko) 1.在burpsuite的proxy栏目中,找到对WackoPicko路 ...

  9. plsql 连不上64位oracle客户端

    1)安装Oracle 11g 64位 2)安装32位的Oracle客户端( instantclient-basic-win32-11.2.0.1.0) 下载instantclient-basic-wi ...

  10. jquery keypress() 方法 语法

    jquery keypress() 方法 语法 作用:keypress 事件与 keydown 事件类似.当按钮被按下时,会发生该事件.它发生在当前获得焦点的元素上.不过,与 keydown 事件不同 ...