Gitlab使用和分支管理(三)-創(chuàng)新互聯(lián)

(一)、配置SSH到Gitlab賬號(hào)
1、使用ssh-keygen生成密鑰文件.ssh/id_rsa.pub

成都創(chuàng)新互聯(lián)公司堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的工農(nóng)網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
[root@zabbix-proxy0496 ~]# ssh-keygen 
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:3DpddsSwRtOfMSDE8NSancZpL9sP7LPKFZQmjc2BWxc root@zabbix-proxy0496
The key's randomart image is:
+---[RSA 2048]----+
|         .++=+oE.|
|          ooo@o=.|
|           .Xo%o+|
|       . . +.% ..|
|        S . = +  |
|         o o + o |
|        o .   B  |
|         . . +.o |
|            o.ooo|
+----[SHA256]-----+

2、查看公鑰的配置密文

[root@zabbix-proxy0496 ~]# cat ~/.ssh/id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDJLYoootIWqpvrvuCpdCzSQGFHt/AYrXo5eYiqU6f2x8e55EjlOTMchykdBdZH0E38T7E/0GVD5J4Juo0F4TKXQAS0Vcg3MvDdaMyJRUBliN+CP8PjiTcKmLBXXnFTyr2d7XSLrkOq7EMf5PXpvl/SK+ildMC0YKNm2bDcg6hTRdWMoSC9dqUY/xNXmCxAn020dolfyyMb8NBmQCZOjZUlyfZt0KFnyMU3I8Fa5ex6Ow8ymGcTRnc/oXrOhclVU7e7tZ+zpe0EibKcsd7vDvW/fXIIkU7DXEMxn5mldf8rq81Zij0YgmebFpHI34dQ4UK1ey7PhIR73tCktUdsUmVX root@zabbix-proxy0496

3、在gitlab上添加ssh-key登陸
Gitlab使用和分支管理(三)

(二)、常用操作
1、把相關(guān)的代碼克隆下來(lái)

[root@zabbix-proxy0496 gitlab]# git clone git@192.168.4.97:lqb/yw.git
Cloning into 'yw'...
The authenticity of host '192.168.4.97 (192.168.4.97)' can't be established.
ECDSA key fingerprint is SHA256:7OoUZ9xWrE2sHmPq57C3L/DJdhX+zrrYlm58tboarqQ.
ECDSA key fingerprint is MD5:fa:38:e5:fc:90:d2:37:47:d4:0f:56:94:2e:8b:44:50.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.4.97' (ECDSA) to the list of known hosts.
remote: Enumerating objects: 25, done.
remote: Counting objects: 100% (25/25), done.
remote: Compressing objects: 100% (20/20), done.
remote: Total 25 (delta 6), reused 0 (delta 0)
Receiving objects: 100% (25/25), 67.95 KiB | 0 bytes/s, done.
Resolving deltas: 100% (6/6), done.
[root@zabbix-proxy0496 gitlab]# ls
yw

2、進(jìn)相應(yīng)的倉(cāng)庫(kù)查看git狀態(tài)

[root@zabbix-proxy0496 gitlab]# cd yw/
[root@zabbix-proxy0496 yw]# git status
# On branch master
nothing to commit, working directory clean
[root@zabbix-proxy0496 yw]# ls
1.png  CONTRIBUTING.md  Dockerfile  lqb  README.md  test.sh

3、創(chuàng)建相應(yīng)的代碼添加到暫存區(qū)并上傳到gitlab服務(wù)器上

[root@zabbix-proxy0496 yw]# echo "this is first " > index.html 
[root@zabbix-proxy0496 yw]# cat index.html 
this is first 
[root@zabbix-proxy0496 yw]# git add index.html 
[root@zabbix-proxy0496 yw]# git commit -m 'first commit'
[master 7d6a20e] first commit
 1 file changed, 1 insertion(+), 1 deletion(-)
[root@zabbix-proxy0496 yw]# git push -u origin master
Counting objects: 7, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (6/6), 519 bytes | 0 bytes/s, done.
Total 6 (delta 2), reused 0 (delta 0)
To git@192.168.4.97:lqb/yw.git
   4497bc1..7d6a20e  master -> master
Branch master set up to track remote branch master from origin.

4、相關(guān)常用的命令

[root@zabbix-proxy0496 yw]# git log                  ###查看歷史提交記錄
[root@zabbix-proxy0496 yw]# git reflog              ###查看未來(lái)歷史更新點(diǎn)
[root@zabbix-proxy0496 yw]#git reset --hard HEAD ###還原提交版本上一次,上一次提交版本HEAD
#########git刪除數(shù)據(jù)
1、 git rm --cached database  #將文件從git暫存區(qū)域的追蹤列表移除并不刪除當(dāng)前工作目錄內(nèi)的數(shù)據(jù)文件->只刪除緩存 
2、 git rm -f database 4 #將文件數(shù)據(jù)從git暫存區(qū)和工作目錄一起刪除->永久刪除
##########git重命名數(shù)據(jù)
3、git mv README NOTICE  #### README修改前/NOTICE修改后;最后進(jìn)行提交git倉(cāng)庫(kù) 2 注意:也可mv修改名稱→刪除git倉(cāng)庫(kù)的文件快照git rm '*.txt'→將新的文件添加進(jìn)去→提交git倉(cāng)庫(kù)

備注:
git rm -f filename      #刪除工作區(qū)和暫存區(qū)的文件
(use --cached to keep the file, or -f to force removal)?
git diff file          #比較本地vs暫存區(qū)
git diff --cached file    #暫存區(qū)vs本地版本庫(kù)
git log --oneline        # 一行顯示
         --decorate      # 具體操作?
git log -p                 #顯示詳細(xì)信息
git log -1                #顯示1條
commit 相當(dāng)于做快照
從暫存區(qū)恢復(fù)到本地工作區(qū)
  git checkout -- file           # 撤銷工作區(qū)更改
從版本庫(kù)恢復(fù)[覆蓋]到暫存區(qū)(暫存區(qū)錯(cuò)誤add交)
git reset HEAD file
從版本庫(kù)回退到版本[某一次commit版本]
git reset --hard f34j34
回退后,回退點(diǎn)之后的git log 日志看不到
git reflog 查看所有commit的日志

5、標(biāo)簽使用(一般用于commit之后)

[root@zabbix-proxy0496 yw]# git tag v2.0       #####給當(dāng)前內(nèi)容打上標(biāo)簽
[root@zabbix-proxy0496 yw]# git show v2.0    #####查看當(dāng)前版本v2.0標(biāo)簽的詳細(xì)信息
[root@zabbix-proxy0496 yw]# git tag v2.1 -m "version 2.1 release is test"   #######對(duì)當(dāng)前版本(最新)打標(biāo)記,用于commit提交之后接著進(jìn)行打標(biāo)記(-a指定標(biāo)簽名,-m為說(shuō)明信息)
[root@zabbix-proxy0496 yw]# git tag         #####查看當(dāng)前所有標(biāo)簽
v1.0
v2.0
v2.1
[root@zabbix-proxy0496 yw]# git tag -d v2.0      ######刪除標(biāo)簽v2.0
Deleted tag 'v2.0' (was 1c2bec9)
[root@zabbix-proxy0496 yw]# git reset --hard v2.2
HEAD is now at 02318ea this is second
[root@zabbix-proxy0496 yw]# git reset --hard 02318ea    #######快速回滾
HEAD is now at 02318ea this is second

Workspace:工作區(qū)
Index/Stage/Cached:暫存區(qū)
Repository:本地倉(cāng)庫(kù)
Remote:遠(yuǎn)程倉(cāng)庫(kù)
Git命令就是用于將文件改動(dòng)切換到不同的空間來(lái)記錄

(三)、分支的概念

Git的分支,從本質(zhì)上來(lái)講僅僅是指向提交對(duì)象的可變指針。在這一點(diǎn)上與SvN是有著本質(zhì)的區(qū)別。SVN的分支實(shí)際上就是一個(gè)目錄。
Git的默認(rèn)分支名字是master。在多次提交操作之后,你其實(shí)已經(jīng)有一個(gè)指向最后那個(gè)提交對(duì)象的master分支。它會(huì)在每次的提交操作中自動(dòng)向前移動(dòng)。
git 分支如下圖
Gitlab使用和分支管理(三)

常用的命令如下:

git branch          #查看分支
git checkout dev    #切換分支
git merge dev       # 合并分支
如果修改了同一個(gè)文件,合并時(shí)會(huì)沖突,需要確定修改內(nèi)容
在master 修改沖突的文件,add 提交,commit -->合并完成
git brach -d dev 刪除分支

在實(shí)際的項(xiàng)目開發(fā)中盡量保證master分支穩(wěn)定,僅用于發(fā)布新版本,平時(shí)不要直接修改里面的數(shù)據(jù)文件。而開發(fā)都在dev分支進(jìn)行修改,即每個(gè)人從dev分支創(chuàng)建自己個(gè)人分支,開發(fā)完合并到dev分支,最后合并到master分支
1、創(chuàng)建和切換分支

[root@zabbix-proxy0496 yw]# git branch dev       #####創(chuàng)建分支
[root@zabbix-proxy0496 yw]# git branch            #####查看分支情況當(dāng)前分支有*號(hào)
  dev
* master
[root@zabbix-proxy0496 yw]# git checkout dev    #######切換分支
Switched to branch 'dev'
[root@zabbix-proxy0496 yw]# git checkout index.html       ######一鍵還原,直接將git倉(cāng)庫(kù)的文件覆蓋當(dāng)前文件[危險(xiǎn)]
[root@zabbix-proxy0496 yw]# git branch
* dev
  master

2、合并分支

[root@zabbix-proxy0496 yw]# git checkout master      ####切換分支
Switched to branch 'master'
[root@zabbix-proxy0496 yw]# git merge dev                   ####dev分支合并到master
Merge made by the 'recursive' strategy.
 1.log | 1 +
 1 file changed, 1 insertion(+)
 create mode 100644 1.log
[root@zabbix-proxy0496 yw]# git branch
  dev
* master
[root@zabbix-proxy0496 yw]# tree
.
├── 1.log
├── 1.png
├── CONTRIBUTING.md
├── Dockerfile
├── index.html
├── lqb
├── README.md
└── test.sh
[root@zabbix-proxy0496 yw]# git branch -d dev             ######刪除dev分支
Deleted branch dev (was a9b4292).
[root@zabbix-proxy0496 yw]# git branch
* master

(四)、Github
Github顧名思義是一個(gè)Git版本庫(kù)的托管服務(wù),是目前全球大的軟件倉(cāng)庫(kù),擁有上百萬(wàn)的開發(fā)者用戶,也是軟件開發(fā)和尋找資源的最佳途徑,Github不僅可以托管各種Git版本倉(cāng)庫(kù),還擁有了更美觀
的Web界面,您的代碼文件可以被任何人克隆,使得開發(fā)者為開源項(xiàng)貢獻(xiàn)代碼變得更加容易,當(dāng)然也可以付費(fèi)購(gòu)買私有庫(kù),這樣高性價(jià)比的私有庫(kù)真的是幫助到了很多團(tuán)隊(duì)和企業(yè)。

1、注冊(cè)用戶
2、配置ssh-key
3、創(chuàng)建項(xiàng)目
4、克隆項(xiàng)目到本地
5、推送修改到遠(yuǎn)程

echo "#git">> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin git@github.com:lewen/git.git
git push -u origin master
git remote add origin git@github.com:lewen/git.git
git push -u origin master
ssh-keygen -t rsa
將公鑰添加到    一個(gè)公鑰在github只能綁定一次
將遠(yuǎn)程的拉下來(lái),合并后,再 push
git fetch 將遠(yuǎn)程的更新到本地
git merge origin/master  合并遠(yuǎn)程的到本地master
先拉,再合并,再推

#####常用的命令
1 add        #添加文件內(nèi)容至索引
 2 branch     #列出、創(chuàng)建或刪除分支
 3 checkout   #檢出一個(gè)分支或路徑到工作區(qū)
 4 clone      #克隆一個(gè)版本庫(kù)到一個(gè)新目錄
 5 commit    #記錄變更到版本庫(kù)
 6 init        #創(chuàng)建一個(gè)空的 Git 版本庫(kù)或重新初始化一個(gè)已存在的版本庫(kù)
 7 log        #顯示提交日志
 8 merge     #合并兩個(gè)或更多開發(fā)歷史
 9 mv        #移動(dòng)或重命名一個(gè)文件、目錄或符號(hào)鏈接
10 pull       #獲取并合并另外的版本庫(kù)或一個(gè)本地分支
11 push      #更新遠(yuǎn)程引用和相關(guān)的對(duì)象
12 rm        #從工作區(qū)和索引中刪除文件
13 show     #顯示各種類型的對(duì)象
14 status     #顯示工作區(qū)狀態(tài)
15 tag       #創(chuàng)建、列出、刪除或校驗(yàn)一個(gè)GPG簽名的 tag 對(duì)象

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

網(wǎng)站名稱:Gitlab使用和分支管理(三)-創(chuàng)新互聯(lián)
標(biāo)題路徑:http://muchs.cn/article44/ddpjhe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、外貿(mào)建站、網(wǎng)站內(nèi)鏈、品牌網(wǎng)站建設(shè)商城網(wǎng)站面包屑導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)