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的操做配置,但願能幫到你們

相關文章
相關標籤/搜索