gitlab的常規操作-遠程發布
gitlab是我自己搭建,可以參考gitlab搭建
首先需要配置web端的ssh密鑰才能操作遠程,配置過程如下:
在linux主機上先做密鑰認證
# ssh-keygen
認證成功後,我們可以發現在本地目錄/root/.ssh/下會發現有id_rsa.pub的文件,把該文件的內容復制到web端,做ssh的密鑰
[root@node2 ~]# 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的常規使用,首先我們從本地發布,然後同步到遠程服務端。
#我們在本地庫上創建文件
[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 [email protected]:xiaozhang/xiaozhang.git c0e86ec..491b8f9 master -> master
發現已經成功的推送到遠端。查看遠端web我們也已經可以發現,文檔已經推送到遠端了。
2、源程端代碼被更新,而本地庫沒有最新的更新。
我們之直接在遠程刪除文件
遠程端已經做了最新的修改了,而本地庫可以發現文件還在
[root@node3 xiaozhang]# ls helloword.txt xiaozhang.html xiaozhang.txt
到這時很多人會想,我可以把本地庫再push一遍嗎,這是不行的,遠程端是不允許你這樣做的,因為遠程端修改的就是最新的操作,你的本地庫已經過時了,不信的話我們來推送一下。
我們會發現失敗,接著我們看一下提示,發現它已經提示你需要拉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 [email protected]: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,這些編號只需要三四個就可以實現版本回滾了。)
總結
個人對gitlab的操作配置,希望能幫到大家
gitlab的常規操作-遠程發布