gerrit和gitlab的區別 gerrit-git amd



文章插圖
gerrit和gitlab的區別 gerrit-git amd

文章插圖
目的檢查并生成本地的ssh key檢查是否已經存在ssh key檢查生成的ssh key登陸Gerrit配置ssh key登錄gerrit打開gerrit配置選項添加ssh key查看配置ssh key的結果驗證Gerrit的ssh key配置結果Git的安裝Git的配置驗證gerrit的ssh鏈接結束語目的
本文的目的是指導在Windows操作系統下面,如何配置通過ssh key來訪問gerrit服務器 。
檢查并生成本地的ssh key檢查是否已經存在ssh key
在生成本地的ssh key之前,我們需要首先檢查一下自己本地是否已經生成過ssh key,如果已經生成過,則不需要再次生成,可以直接使用已經存在的ssh key,如果沒生成過ssh key,則需要生成新的ssh key 。
具體檢查是否生成ssh key的方法如下,以管理員的方式運行powershell程序,然后再里面輸入如下命令,**注意:**如果沒有powershell程序,就以管理員身份運行cmd程序 。
C:Windowssystem32>dir C:Userszhangsan.ssh 驅動器 C 中的卷沒有標簽 。卷的序列號是 E637-92C8 C:Userszhangsan 的目錄找不到文件C:Windowssystem32>通過上面的命令和輸出我們可以看出本地是沒有生成過ssh key的,我們可以通過如下的命令生成ssh key 。
生成ssh key的命令如下 。在以管理員的方式運行powershell程序,然后執行如下命令,**注意:**如果沒有powershell程序,就以管理員身份運行cmd程序 。
C:Windowssystem32>ssh-keygen -t rsaGenerating public/private rsa key pair.Enter file in which to save the key (C:Userszhangsan/.ssh/id_rsa):Created directory 'C:Userszhangsan/.ssh'.Enter passphrase (empty for no passphrase):Enter same passphrase again:Your identification has been saved in C:Userszhangsan/.ssh/id_rsa.Your public key has been saved in C:Userszhangsan/.ssh/id_rsa.pub.The key fingerprint is:SHA256:8tmUEwMEcYpAzq2OECpZ45PwO6yT9Y/jhg6q2DiQUwA [email protected] key's randomart image is:+---[RSA 2048]----+|E.oo++||.o o . o .||o.= o .o||.B.++||=o*. S +||*+.oo + .||++=oo .||*=..+.||B+oooo.|+----[SHA256]-----+C:Windowssystem32>檢查生成的ssh key
使用下面的命令來檢查生成的ssh key:
C:Windowssystem32>dir C:Userszhangsan.ssh 驅動器 C 中的卷沒有標簽 。卷的序列號是 E637-92C8 C:Userszhangsan.ssh 的目錄2021/07/2116:53<DIR>.2021/07/2116:53<DIR>..2021/07/2116:531,679 id_rsa2021/07/2116:53398 id_rsa.pub2 個文件2,077 字節2 個目錄2,809,282,560 可用字節C:Windowssystem32>通過上面的命令和輸出結果,我們可以看出,ssh key已經生成成功 。
其中兩個文件的含義如下:
id_rsa:私鑰文件,不要輕易給別人知道這個文件內容 。id_rsa.pub:公鑰文件,可以發送給他人,或配置到其他服務器上,通過自己的私鑰,鏈接到配置在其他服務器上面的私鑰來實現遠程的免密碼登陸訪問 。
登陸Gerrit配置ssh key
前面我們已經在本地準備好ssh key了,下面我把準備好的ssh key配置到我們的gerrit賬號下面 。
登錄gerrit
使用自己的平臺賬號登陸gerrit的web頁面,如下所示:
打開gerrit配置選項
登錄成功后,如下所示,點擊你的姓名選擇settings菜單 。
然后再次選擇SSH Public Keys選項,然后再點擊右側的Add Key按鈕,如下所示:
添加ssh key
查看本地的ssh key中的公鑰,然后把你本地C:Userszhangsan.sshid_rsa.pub文件中的內容,如下所示:
C:Windowssystem32>more C:Userszhangsan.sshid_rsa.pubssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDj7HXYt6XPWrRpE+p3xe592fwV/EA3fMoL4CbCXbEYWTqj4ZE+621k6DgNq+RAIWu+u6aCAykmtPLCKqMxTlTeJ/hohm/bHlIXITcxuBscRNp67dpkl6kNn8IRoFJxYQbhADJwEx5nRn8qFe5BttFs+9Exs9G0bz5RDb5HJpmhDalm/8Nct5k+QrfAZ6Gzv3txgiiH5BuKf/bxuVXpTwvL+637aYDREADKOnyPang0x9aACI82q5dwPa0jqJvRGij8uwjEnXh+nmkqwZeI8ZFSCitAo8tsfhbjBKwfkV7sYmOHJnsMZRvnG0tR9QK7RXPYmlT97TYIQjEalXc5tiSL [email protected]復制上面命令的輸出內容,將其粘貼到下面的文本框中,然后Add按鈕,如下所示:
查看配置ssh key的結果
添加完成public key之后,此時你的gerrit賬號下面就配置了一個public key 。
驗證Gerrit的ssh key配置結果
到目前為止,我們已經把自己本地ssh key配置到了gerrit賬號下面,下面我們來使用git命令來驗證一下是否可以正常鏈接到gerrit服務器上進行代碼的拉取和推送操作 。
Git的安裝
如果你本地還那樣安裝git,請參考下面的git的安裝步驟,如果已經安裝了git,則可以跳過git的安裝步驟 。
驗證是否安裝了git的方式通過如下命令:
C:Windowssystem32>git'git' 不是內部或外部命令,也不是可運行的程序或批處理文件 。C:Windowssystem32>通過上面的命令和輸出結果,我們可以得知,本地目前是沒有安裝Git組件的 。
【gerrit和gitlab的區別 gerrit-git amd】在Windows上安裝Git很簡單,有以下幾種安裝方法,推薦使用第一種方式:
官方版本可以在 Git 官方網站下載 。打開 https://git-scm.com/download/win,下載會自動開始 。要注意這是一個名為 Git for Windows 的項目(也叫做 msysGit),和 Git 是分別獨立的項目;更多信息請訪問 http://msysgit.github.io/ 。要進行自動安裝,你可以使用 Git Chocolatey 包 。注意 Chocolatey 包是由社區維護的 。另一個簡單的方法是安裝 GitHub Desktop 。該安裝程序包含圖形化和命令行版本的 Git 。它也能支持 Powershell,提供了穩定的憑證緩存和健全的換行設置 。稍后我們會對這方面有更多了解,現在只要一句話就夠了,這些都是你所需要的 。你可以在 GitHub for Windows 網站下載,網址為 GitHub Desktop 網站 。
下載完成之后,右鍵以管理員的身份運行.exe文件,一路下一步即可完成Git的安裝 。
安裝完成git之后,搜索找到git cmd程序,這個是在安裝完成Git之后才用的命令行程序,右鍵以管理員身份運行git cmd程序,然后通過如下命令來驗證是否安裝成功 。
C:Userszhangsan>git --versiongit version 2.32.0.windows.2C:Userszhangsan>Git的配置
上面我們完成了git的安裝,接下來我們在使用git之前,需要對git簡單的配置一下,這樣在外面提交代碼的時候 。
在配置之前,可優先看一下是否已經配置了對應的參數,使用如下命令查看:
C:Userszhangsan>git config --listdiff.astextplain.textconv=astextplainfilter.lfs.clean=git-lfs clean -- %ffilter.lfs.smudge=git-lfs smudge -- %ffilter.lfs.process=git-lfs filter-processfilter.lfs.required=truehttp.sslbackend=opensslhttp.sslcainfo=d:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crtcore.autocrlf=truecore.fscache=truecore.symlinks=falsepull.rebase=falsecredential.helper=manager-corecredential.https://dev.azure.com.usehttppath=trueinit.defaultbranch=masterC:Userszhangsan>通過上面命令的輸出結果來看,在本地電腦上還沒有配置git用戶名和郵箱的全局參數 。
請參考下面的命令來進行配置,需要注意的是,你需要把后面的參數換成你自己的姓名全拼音和對應的郵箱地址:
C:Userszhangsan>git config --global user.name "zhangsan"C:Userszhangsan>git config --global user.email "[email protected]"C:Userszhangsan>git全局參數設置后的結果如下:
C:Userszhangsan>git config --listdiff.astextplain.textconv=astextplainfilter.lfs.clean=git-lfs clean -- %ffilter.lfs.smudge=git-lfs smudge -- %ffilter.lfs.process=git-lfs filter-processfilter.lfs.required=truehttp.sslbackend=opensslhttp.sslcainfo=d:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crtcore.autocrlf=truecore.fscache=truecore.symlinks=falsepull.rebase=falsecredential.helper=manager-corecredential.https://dev.azure.com.usehttppath=trueinit.defaultbranch=masteruser.nam[email protected]:Userszhangsan>驗證gerrit的ssh鏈接
git安裝并且配置好之后,現在開始嘗試通過外面配置的ssh key免密鏈接到gerrit 。
登陸gerrit的web頁面,找到我們要clone的項目,具體路徑為:Projects->List->選擇你能訪問的項目
進入下面的頁面,按步驟依次點擊下面的鏈接:
進入自己的git cmd命令行窗口,在自己用戶的目錄下,新建一個文件夾,用于存放gerrit的項目,然后進入到這個文件夾下面,粘貼上面復制的命令,然后回車執行 。
如果彈出提示是否要繼續連接,輸入yes后回車,繼續鏈接 。
C:Userszhangsan>mkdir gerrit_projectsC:Userszhangsan>cd gerrit_projectsC:Userszhangsangerrit_projects>git clone ssh:[email protected]:29888/my_springboot_backend && scp -p -P 29888 [email protected]:hooks/commit-msg my_springboot_backend/.git/hooks/Cloning into 'my_springboot_backend'...The authenticity of host '[internal.devops.com]:29888 ([10.10.10.11]:29888)' can't be established.RSA key fingerprint is SHA256:++v37ZAKWBgE7hhrZC1teajoQqpdIBbMOnhSJyoACMc.This key is not known by any other namesAre you sure you want to continue connecting (yes/no/[fingerprint])? yesWarning: Permanently added '[internal.devops.com]:29888' (RSA) to the list of known hosts.remote: Counting objects: 11108, doneremote: Finding sources: 100% (11108/11108)remote: Total 11108 (delta 5684), reused 10779 (delta 5684)Receiving objects: 100% (11108/11108), 36.92 MiB | 3.30 MiB/s, done.Resolving deltas: 100% (5684/5684), done.Updating files: 100% (707/707), done.Warning: Permanently added the RSA host key for IP address '[10.10.10.11]:29888' to the list of known hosts.commit-msg100% 468241.8KB/s00:00close - IO is still pending on closed socket. read:1, write:0, io:000001FD5002F320C:Userszhangsangerrit_projects>dir 驅動器 C 中的卷沒有標簽 。卷的序列號是 E637-92C8 C:Userszhangsangerrit_projects 的目錄2021/07/2118:10<DIR>.2021/07/2118:10<DIR>..2021/07/2118:10<DIR>my_springboot_backend0 個文件0 字節3 個目錄1,081,532,416 可用字節C:Userszhangsangerrit_projects>cd my_springboot_backendC:Userszhangsangerrit_projectsmy_springboot_backend>dir 驅動器 C 中的卷沒有標簽 。卷的序列號是 E637-92C8 C:Userszhangsangerrit_projectsmy_springboot_backend 的目錄2021/07/2118:10<DIR>.2021/07/2118:10<DIR>..2021/07/2118:102,475 .gitignore2021/07/2118:109,443 pom.xml2021/07/2118:10<DIR>script2021/07/2118:10<DIR>src2021/07/2118:10<DIR>upload2 個文件11,918 字節5 個目錄1,081,466,880 可用字節C:Userszhangsangerrit_projectsmy_springboot_backend>git statusOn branch masterYour branch is up to date with 'origin/master'.nothing to commit, working tree cleanC:Userszhangsangerrit_projectsmy_springboot_backend>通過上面的命令和輸出,我們可以已經可以成功地從gerrit上面克隆代碼倉庫到本地來 。