gitlab安裝教程詳細:gerrit和git的區別有什麼

  • 目的
  • 檢查並生成本地的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 rsa
Generating 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 zhangsan@mywinpc
The key's randomart image is:
+---[RSA 2048]----+
|E.o   o++        |
|.o o . o .       |
|o.= o .   o      |
|.B.+       +     |
|=o*   . S +      |
|*+.o   o + .     |
|++=o    o .      |
|*=..+.           |
|B+oooo.          |
+----[SHA256]-----+

C:Windowssystem32>

檢查生成的ssh key

使用下面的命令來檢查生成的ssh key:

C:Windowssystem32>dir C:Userszhangsan.ssh
 驅動器 C 中的卷沒有標籤。
 卷的序列號是 E637-92C8

 C:Userszhangsan.ssh 的目錄

2021/07/21  16:53    <DIR>          .
2021/07/21  16:53    <DIR>          ..
2021/07/21  16:53             1,679 id_rsa
2021/07/21  16:53               398 id_rsa.pub
               2 個文件          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頁面,如下所示:

Windows下Gerrit配置SSH KEY

打開gerrit配置選項

登錄成功後,如下所示,點擊你的姓名選擇settings菜單。

Windows下Gerrit配置SSH KEY

然後再次選擇SSH Public Keys選項,然後再點擊右側的Add Key按鈕,如下所示:

Windows下Gerrit配置SSH KEY

添加ssh key

查看本地的ssh key中的公鑰,然後把你本地C:Userszhangsan.sshid_rsa.pub文件中的內容,如下所示:

C:Windowssystem32>more C:Userszhangsan.sshid_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDj7HXYt6XPWrRpE+p3xe592fwV/EA3fMoL4CbCXbEYWTqj4ZE+621k6DgNq+RAIWu+u6aCAykmtPLCKqMxTlTeJ/hohm/bHlIXITcxuBscRNp67dpkl6kNn8IRoFJxYQbhADJwEx5nRn8qFe5BttFs+9Exs9G0bz5RDb5HJpmhDalm/8Nct5k+QrfAZ6Gzv3txgiiH5BuKf/bxuVXpTwvL+637aYDREADKOnyPang0x9aACI82q5dwPa0jqJvRGij8uwjEnXh+nmkqwZeI8ZFSCitAo8tsfhbjBKwfkV7sYmOHJnsMZRvnG0tR9QK7RXPYmlT97TYIQjEalXc5tiSL zhangsan@mywinpc

複製上面命令的輸出內容,將其粘貼到下面的文本框中,然後Add按鈕,如下所示:

Windows下Gerrit配置SSH KEY

查看配置ssh key的結果

添加完成public key之後,此時你的gerrit賬號下面就配置了一個public key。

Windows下Gerrit配置SSH KEY

驗證Gerrit的ssh key配置結果

到目前為止,我們已經把自己本地ssh key配置到了gerrit賬號下面,下面我們來使用git命令來驗證一下是否可以正常鏈接到gerrit伺服器上進行代碼的拉取和推送操作。

Git的安裝

如果你本地還那樣安裝git,請參考下面的git的安裝步驟,如果已經安裝了git,則可以跳過git的安裝步驟。

驗證是否安裝了git的方式通過如下命令:

C:Windowssystem32>git
'git' 不是內部或外部命令,也不是可運行的程序
或批處理文件。

C:Windowssystem32>

通過上面的命令和輸出結果,我們可以得知,本地目前是沒有安裝Git組件的。

在Windows上安裝Git很簡單,有以下幾種安裝方法,推薦使用第一種方式:

  1. 官方版本可以在 Git 官方網站下載。 打開 https://git-scm.com/download/win,下載會自動開始。 要注意這是一個名為 Git for Windows 的項目(也叫做 msysGit),和 Git 是分別獨立的項目;更多信息請訪問 http://msysgit.github.io/。
  2. 要進行自動安裝,你可以使用 Git Chocolatey 包。 注意 Chocolatey 包是由社區維護的。
  3. 另一個簡單的方法是安裝 GitHub Desktop。 該安裝程序包含圖形化和命令行版本的 Git。 它也能支持 Powershell,提供了穩定的憑證緩存和健全的換行設置。 稍後我們會對這方面有更多了解,現在只要一句話就夠了,這些都是你所需要的。 你可以在 GitHub for Windows 網站下載,網址為 GitHub Desktop 網站。

下載完成之後,右鍵以管理員的身份運行.exe文件,一路下一步即可完成Git的安裝。

安裝完成git之後,搜索找到git cmd程序,這個是在安裝完成Git之後才用的命令行程序,右鍵以管理員身份運行git cmd程序,然後通過如下命令來驗證是否安裝成功。

C:Userszhangsan>git --version
git version 2.32.0.windows.2

C:Userszhangsan>

Git的配置

上面我們完成了git的安裝,接下來我們在使用git之前,需要對git簡單的配置一下,這樣在外面提交代碼的時候。

在配置之前,可優先看一下是否已經配置了對應的參數,使用如下命令查看:

C:Userszhangsan>git config --list
diff.astextplain.textconv=astextplain
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
http.sslbackend=openssl
http.sslcainfo=d:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
core.autocrlf=true
core.fscache=true
core.symlinks=false
pull.rebase=false
credential.helper=manager-core
credential.https://dev.azure.com.usehttppath=true
init.defaultbranch=master

C:Userszhangsan>

通過上面命令的輸出結果來看,在本地電腦上還沒有配置git用戶名和郵箱的全局參數。

請參考下面的命令來進行配置,需要注意的是,你需要把後面的參數換成你自己的姓名全拼音和對應的郵箱地址:

C:Userszhangsan>git config --global user.name "zhangsan"

C:Userszhangsan>git config --global user.email "zhangsan@mywinpc.com"

C:Userszhangsan>

git全局參數設置後的結果如下:

C:Userszhangsan>git config --list
diff.astextplain.textconv=astextplain
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
http.sslbackend=openssl
http.sslcainfo=d:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
core.autocrlf=true
core.fscache=true
core.symlinks=false
pull.rebase=false
credential.helper=manager-core
credential.https://dev.azure.com.usehttppath=true
init.defaultbranch=master
user.name=zhangsan
user.email=zhangsan@mywinpc.com

C:Userszhangsan>

驗證gerrit的ssh鏈接

git安裝並且配置好之後,現在開始嘗試通過外面配置的ssh key免密鏈接到gerrit。

登陸gerrit的web頁面,找到我們要clone的項目,具體路徑為:Projects->List->選擇你能訪問的項目

Windows下Gerrit配置SSH KEY

進入下面的頁面,按步驟依次點擊下面的鏈接:

Windows下Gerrit配置SSH KEY

進入自己的git cmd命令行窗口,在自己用戶的目錄下,新建一個文件夾,用於存放gerrit的項目,然後進入到這個文件夾下面,粘貼上面複製的命令,然後回車執行。

如果彈出提示是否要繼續連接,輸入yes後回車,繼續鏈接。

C:Userszhangsan>mkdir gerrit_projects

C:Userszhangsan>cd gerrit_projects

C:Userszhangsangerrit_projects>git clone ssh://zhangsan@internal.devops.com:29888/my_springboot_backend && scp -p -P 29888 zhangsan@internal.devops.com: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 names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '[internal.devops.com]:29888' (RSA) to the list of known hosts.
remote: Counting objects: 11108, done
remote: 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-msg                                                                            100% 4682    41.8KB/s   00:00
close - IO is still pending on closed socket. read:1, write:0, io:000001FD5002F320

C:Userszhangsangerrit_projects>dir
 驅動器 C 中的卷沒有標籤。
 卷的序列號是 E637-92C8

 C:Userszhangsangerrit_projects 的目錄

2021/07/21  18:10    <DIR>          .
2021/07/21  18:10    <DIR>          ..
2021/07/21  18:10    <DIR>          my_springboot_backend
               0 個文件              0 位元組
               3 個目錄  1,081,532,416 可用位元組

C:Userszhangsangerrit_projects>cd my_springboot_backend

C:Userszhangsangerrit_projectsmy_springboot_backend>dir
 驅動器 C 中的卷沒有標籤。
 卷的序列號是 E637-92C8

 C:Userszhangsangerrit_projectsmy_springboot_backend 的目錄

2021/07/21  18:10    <DIR>          .
2021/07/21  18:10    <DIR>          ..
2021/07/21  18:10             2,475 .gitignore
2021/07/21  18:10             9,443 pom.xml
2021/07/21  18:10    <DIR>          script
2021/07/21  18:10    <DIR>          src
2021/07/21  18:10    <DIR>          upload
               2 個文件         11,918 位元組
               5 個目錄  1,081,466,880 可用位元組

C:Userszhangsangerrit_projectsmy_springboot_backend>git status
On branch master
Your branch is up to date with 'origin/master'.

nothing to commit, working tree clean

C:Userszhangsangerrit_projectsmy_springboot_backend>

通過上面的命令和輸出,我們可以已經可以成功地從gerrit上面克隆代碼倉庫到本地來。

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/222691.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-09 14:11
下一篇 2024-12-09 14:11

相關推薦

發表回復

登錄後才能評論