gitlab的常规操做-远程发布

             gitlab的常规操做html

gitlab是我本身搭建,能够参考gitlab搭建
node

首先须要配置web端的ssh密钥才能操做远程,配置过程以下:linux

在linux主机上先作密钥认证git

# ssh-keygenweb

 1.png

认证成功后,咱们能够发如今本地目录/root/.ssh/下会发现有id_rsa.pub的文件,把该文件的内容复制到web端,作ssh的密钥bash

[root@node2 ~]# ls  /root/.ssh/
authorized_keys  id_rsa  id_rsa.pub  known_hosts

添加过程以下:ssh

登录你的gitlab,点击setting,以下图所示:ide

 2.png

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

 3.png

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

 4.png

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

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

 5.png

# cd /learngit/ 
#git clone git@10.10.109.53:xiaozhang/xiaozhang.git

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

#咱们在本地库上建立文件

[root@node2 xiaozhang]# pwd
/learngit/xiaozhang
[root@node2 xiaozhang]# echo 123 > xiaozhang.html

查看一下状态

[root@node3 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)

能够发现系统叫你把本地文件加入到本地库里面,咱们添加一下

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

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

[root@node2 xiaozhang]# git commit -m 'add xiaozhang.html'
[master 491b8f9] add xiaozhang.html
 1 file changed, 1 insertion(+)
 create mode 100644 xiaozhang.html
[root@node2 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

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

[root@node3 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 git@10.10.109.53:xiaozhang/xiaozhang.git
   c0e86ec..491b8f9  master -> master

发现已经成功的推送到远端。查看远端web咱们也已经能够发现,文档已经推送到远端了。

 6.png

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

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

 7.png

远程端已经作了最新的修改了,而本地库能够发现文件还在

[root@node3 xiaozhang]# ls
helloword.txt  xiaozhang.html  xiaozhang.txt

到这时不少人会想,我能够把本地库再push一遍吗,这是不行的,远程端是不容许你这样作的,由于远程端修改的就是最新的操做,你的本地库已通过时了,不信的话咱们来推送一下。

 8.png

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

拉取:

[root@node3 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)查看日志信息

[root@node2 xiaozhang]# git log --pretty=oneline
f588d76af5d67278c05fdcda2701665896cd2cd9 删除 xiaozhang.html
491b8f9638a2640988fac5e4dbbd1355cc3777db add xiaozhang.html

咱们发现里面有记录的commit的操做,若是你想更详细的能够这样

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

(2)分支查询与建立,咱们能够经过branch –a查看全部的分支信息

[root@node3 xiaozhang]# git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master

 咱们接着建立一个分支

[ root@node3 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,这些编号只须要三四个就能够实现版本回滚了。)

四、远程分支问题,如何把代码推送到远程的次分支

查看远程分支(远程分支在web端新建)

查看以下:

[root@node2 meistreet]# git branch -a
* master  (本地主分支)
 remotes/origin/HEAD -> origin/master
 remotes/origin/dev (远程gitlab的dev次分支)
 remotes/origin/master (远程gitlab的master主分支)

通常本地的master主分支是操做远程的master主分支,远程次分支对应本地的次分支

新建分支

#git checkout  -b  dev 切换本地master
#git  + 操做  add commit
#git push origin dev

 


总结

我的对gitlab的操做配置,但愿能帮到你们

相关文章
相关标签/搜索