gitlab的常规操作-远程发布

 gitlab的常规操作

gitlab是我自己搭建,可以参考gitlab搭建

首先需要配置web端的ssh密钥才能操作远程,配置过程如下:

在linux主机上先做密钥认证

# ssh-keygen

认证成功后,我们可以发现在本地目录/root/.ssh/下会发现有id_rsa.pub的文件,把该文件的内容复制到web端,做ssh的密钥

[[email protected] ~]# ls  /root/.ssh/
authorized_keys  id_rsa  id_rsa.pub  known_hosts

添加过程如下:

登陆你的gitlab,点击setting,如下图所示:

鼠标移动钥匙的图表点击SSH keys

然后把你需要验证主机的id_rsa.pub的东西复制到密钥框里面,添加完毕后就可以完事了,如下图所示:

克隆gitlab远程库(前提是已经创建完你的项目)

我这里在搭建的时候没有填写ip,所以显示的路径是localost这个问题不是很大,我们可以直接用IP克隆就好。

# cd /learngit/ 
#git clone [email protected]:xiaozhang/xiaozhang.git

1、接下来了解一下git的常规使用,首先我们从本地发布,然后同步到远程服务端。

#我们在本地库上创建文件

[[email protected] xiaozhang]# pwd
/learngit/xiaozhang
[[email protected] xiaozhang]# echo 123 > xiaozhang.html

查看一下状态

[[email protected] xiaozhang]# git status
# On branch master
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#xiaozhang.html
nothing added to commit but untracked files present (use "git add" to track)

可以发现系统叫你把本地文件加入到本地库里面,我们添加一下

[[email protected] xiaozhang]# git add xiaozhang.html
[[email protected] xiaozhang]# git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#new file:   xiaozhang.html

发现,新文件已经添加到本地创库里面了,但是git的状态还没清除,这就需要我们下一步的用commit来打标签了。

[[email protected] xiaozhang]# git commit -m 'add xiaozhang.html'
[master 491b8f9] add xiaozhang.html
 1 file changed, 1 insertion(+)
 create mode 100644 xiaozhang.html
[[email protected] xiaozhang]# git status
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#   (use "git push" to publish your local commits)
#
nothing to commit, working directory clean

到了这一步,发现任务状态已经清除了,然后我试的推送到远端。

[[email protected] xiaozhang]# git push
warning: push.default is unset; its implicit value is changing in
Git 2.0 from 'matching' to 'simple'. To squelch this message
and maintain the current behavior after the default changes, use:
  git config --global push.default matching
To squelch this message and adopt the new behavior now, use:
  git config --global push.default simple
See 'git help config' and search for 'push.default' for further information.
(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode
'current' instead of 'simple' if you sometimes use older versions of Git)
Counting objects: 4, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 317 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To [email protected]:xiaozhang/xiaozhang.git
   c0e86ec..491b8f9  master -> master

发现已经成功的推送到远端。查看远端web我们也已经可以发现,文档已经推送到远端了。

2、源程端代码被更新,而本地库没有最新的更新。

我们之直接在远程删除文件

远程端已经做了最新的修改了,而本地库可以发现文件还在

[[email protected] xiaozhang]# ls
helloword.txt  xiaozhang.html  xiaozhang.txt

到这时很多人会想,我可以把本地库再push一遍吗,这是不行的,远程端是不允许你这样做的,因为远程端修改的就是最新的操作,你的本地库已经过时了,不信的话我们来推送一下。

我们会发现失败,接着我们看一下提示,发现它已经提示你需要拉pull下载才你正常操作。

拉取:

[[email protected] xiaozhang]# git pull
remote: Counting objects: 2, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 2 (delta 1), reused 0 (delta 0)
Unpacking objects: 100% (2/2), done.
From 10.10.109.53:xiaozhang/xiaozhang
   491b8f9..f588d76  master     -> origin/master
Updating 491b8f9..f588d76
Fast-forward
 xiaozhang.html | 1 -
 1 file changed, 1 deletion(-)
 delete mode 100644 xiaozhang.html

我们发现本地库又与远程库同步成功了。

3、各种信息查询、以及版本回滚。

(1)查看日志信息

[[email protected] xiaozhang]# git log --pretty=oneline
f588d76af5d67278c05fdcda2701665896cd2cd9 删除 xiaozhang.html
491b8f9638a2640988fac5e4dbbd1355cc3777db add xiaozhang.html

我们发现里面有记录的commit的操作,如果你想更详细的可以这样

[[email protected] xiaozhang]# git reflog
f588d76 [email protected]{0}: pull: Fast-forward
491b8f9 [email protected]{1}: commit: add xiaozhang.html
c0e86ec [email protected]{2}: commit: add hellword
697749d [email protected]{3}: clone: from [email protected]:xiaozhang/xiaozhang.git

(2)分支查询与创建,我们可以通过branch –a查看所有的分支信息

[[email protected] xiaozhang]# git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master

我们接着创建一个分支

[ [email protected] xiaozhang]# git checkout -b xiaozhang
Switched to a new branch 'xiaozhang'

这个命令的作用就相当于

#git branch xianzhang  #创建分支
#gir checkout  xiaozhang #把xiaozhang变成主分支

(3)版本回滚

版本回滚主要就是通过日志来回滚以前的版本

#git reset --hard HEAD^   回滚上个版本
# git reset --hard HEAD^^  回滚上上个版本

其他的我们通过git reflog来查看版本信息,任何回滚,列如

# git reset --hard (+前面的编号如:f588d76af5d,这些编号只需要三四个就可以实现版本回滚了。)

总结

个人对gitlab的操作配置,希望能帮到大家

原文地址:http://blog.51cto.com/xiaozhagn/2123123

时间: 2024-10-13 03:01:04

gitlab的常规操作-远程发布的相关文章

Gitlab的常规应用与操作

  Gitlab的常规操作 gitlab的搭建可以参考gitlab搭建 首先需要配置web端的ssh密钥才能操作远程,配置过程如下: 在linux主机上先做密钥认证 # ssh-keygen 认证成功后,我们可以发现在本地目录/root/.ssh/下会发现有id_rsa.pub的文件,把该文件的内容复制到web端,做ssh的密钥 [[email protected] ~]# ls  /root/.ssh/ authorized_keys  id_rsa  id_rsa.pub  known_ho

GIT 的常规操作

GIT 的常规操作 常规操作也是我自己平时常用的几个命令, 学自于 pro git 这本书中 git 配置文件 git的配置文件位置 针对所有用户:/etc/gitconfig 针对当前用户: -/.gitconfig 查看配置的方法 git config --list 修改配置的方法 git config --global user.name "wangyubin" (修改的是-/.gitconfig) git config --system user.name "wang

svn常规操作与相关知识

Svn常规操作与相关知识 一.何谓版本控制 它是一种软件工程籍以在开发的过程中,确保由不同人所编辑的同一档案都得到更新,它透过文档控制记录程序各个模块的改动,并为每次改动编上序号,并且编辑错误之后还可以回溯到以前的版本 二.可供我们选择的版本控制系统 1.VCS  (本地版本控制) 2.VSS.CVS(集中版本控制) 3.ClearCase.SVN.Perforce.TFS(集中版本控制) 4.Mercurial(水银/水星).Git(分布式版本控制) 差异: 1.Git和其他版本控制系统的主要

FTP服务器常规操作

导读 FTP协议是Internet文件传输的基础,它是由一系列规格说明文档组成,目标是提高文件的共享性,提供非直接使用远程计算机,使存储介质对用户透明和可靠高效地传送数据.下面就由我给大家简单介绍一下FTP服务器的常规操作. 软件包安装 Red Hat Linux自带VSFTP服务器软件,不需要另行安装.如果在安装系统时没有安装VSFTP服务器,可以用rpm安装,也可以利用tar安装.新版的软件包可以到VSFTP的网站http://vsftp.beasts.org/下载.例如安装vsftp-2.

Python操作远程数据库

我的项目要往数据库中插入create_time和update_time,那就势必要引用现在的系统时间,经过大量的查找,终于发现往python是没有对应时间datetime的相关通配符的,那么我们要怎么实现呢. 其实很简单,我们只需要把datetime转换成字符串类型的就行 def insertIntoChannel(self, user): conn = JDBCUtils.getConnection() cursor = conn.cursor() dt=datetime.datetime.n

IIS服务器 远程发布(Web Deploy)配置 VS2010 开发环境 Windows Server 2008服务器系统

sp.net 网站有三种常用的发布方式:分别是拷贝开发机上发布好的文件到服务器硬盘上.打包成安装程序到服务器上安装.通过Visual Studio 开发平台远程发布到服务器. 在asp.net网站的开发阶段,经常需要将系统发布到开发者所在局域网的服务器上,供客户和项目负责人预览.之前都是在开发机上发布好之后再拷贝到服务器上部署,因为开 发阶段系统的更新很快,每次都拷贝文件很麻烦.于是开始研究VS2010发布到远程IIS服务器的方法,经过在网上查找相关资料和亲身实践成功的在Windows Serv

配置远程发布到私服

<!-- 配置远程发布到私服,mvn deploy --> <distributionManagement> <repository> <id>nexus</id> <name> Nexus Release Repository </name> <url>http://ip:port/nexus/content/repositories/releases/</url> </repository

Apache服务器常规操作

导读 Apache是世界上排名第一的Web服务器,50%以上的Web服务器都在使用Apache,它几乎可以在所有计算机平台上运行.下面就由我给大家说说Apache服务器的一些常规操作. Apache服务器的安装 一般情况下,Apache随Linux系统一起安装.安装时,选择Web Server组件,即可在系统中安装Apache.用户的工作主要是配置服务器. 检查系统中是否已经安装Apache 在Red Hat Linux下,用户可以执行以下命令查看系统中是否存在Apache及其版本: [[ema

Eclipse高级操作 远程调试

Eclipse高级操作 远程调试 JPDA是SUN JDK自带的远程调试机制.它提供了一套标准的调试接口,可以从虚拟机一级允许外界用特定协议探测虚拟机内部的运作细节.只要你装了JDK1.2以上的SUN JDK,就已经有了JPDA支持.只要是用标准SUN JDK中java.exe运行的应用,就可以用JPDA进行远程调试.以WEB应用的开发为例,servlet和ejb的调试一直不是一件太容易的事情.虽然Jbuilder/Eclipse等有一些常见的应用服务器,如tomcat/weblogic的调试插