设为首页 收藏本站
查看: 929|回复: 0

[经验分享] gitlab的常规操作-远程发布

[复制链接]

尚未签到

发表于 2018-9-19 08:05:59 | 显示全部楼层 |阅读模式
  gitlab的常规操作
  gitlab是我自己搭建,可以参考gitlab搭建
  首先需要配置web端的ssh密钥才能操作远程,配置过程如下:
  在linux主机上先做密钥认证
  # ssh-keygen
DSC0000.jpg

  认证成功后,我们可以发现在本地目录/root/.ssh/下会发现有id_rsa.pub的文件,把该文件的内容复制到web端,做ssh的密钥
[root@node2 ~]# ls  /root/.ssh/  
authorized_keys  id_rsa  id_rsa.pub  known_hosts
  添加过程如下:
  登陆你的gitlab,点击setting,如下图所示:
DSC0001.jpg

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

  然后把你需要验证主机的id_rsa.pub的东西复制到密钥框里面,添加完毕后就可以完事了,如下图所示:
   DSC0003.jpg
  克隆gitlab远程库(前提是已经创建完你的项目)
  我这里在搭建的时候没有填写ip,所以显示的路径是localost这个问题不是很大,我们可以直接用IP克隆就好。
DSC0004.jpg

# 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 ..." 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 ..." 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我们也已经可以发现,文档已经推送到远端了。
DSC0005.jpg

  2、源程端代码被更新,而本地库没有最新的更新。
  我们之直接在远程删除文件
DSC0006.jpg

  远程端已经做了最新的修改了,而本地库可以发现文件还在
[root@node3 xiaozhang]# ls  
helloword.txt  xiaozhang.html  xiaozhang.txt
  到这时很多人会想,我可以把本地库再push一遍吗,这是不行的,远程端是不允许你这样做的,因为远程端修改的就是最新的操作,你的本地库已经过时了,不信的话我们来推送一下。
DSC0007.jpg

  我们会发现失败,接着我们看一下提示,发现它已经提示你需要拉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,这些编号只需要三四个就可以实现版本回滚了。)  4、远程分支问题,如何把代码推送到远程的次分支
  查看远程分支(远程分支在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的操作配置,希望能帮到大家



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-593980-1-1.html 上篇帖子: Gitlab持续集成-(.gitlab-ci.yml) 下篇帖子: gitlab仓库存储位置的修改方法--亲测有效
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表