Git配置SSH Key


  最近看到很多人在配置Git時,遇到很問題,網上教程千篇一律。這兒自己單獨記錄一份。

Git配置SSH Key

1.檢查本機是否有ssh key設置,切換到.ssh目錄
  $ cd ~/.ssh 或cd .ssh

2.配置git用戶名和郵箱,配置多個用戶時添加 --add 參數
  $ git config --global --add user.name "username"
  $ git config --global --add user.email "email"

  $ git config --global --unset user.name "username"            #移除用戶
  $ git config --global --unset user.email "email"               #移除郵箱

3.查看用戶名和郵箱
  $ git config --list

(如果沒有安裝TortoiseGit則跳過)因為TortoiseGit和Git的沖突需要把TortoiseGit設置改正如下:
  1.在右鍵選擇 TortoiseGit  ->  Settings  ->  Network  
  2.將SSH client指向  ~Git\usr\bin\ssh.exe  (Git安裝路徑下的\usr\bin\ssh.exe)

4.生成成對的私鑰公鑰
  $ ssh-keygen -t rsa -C "test@qq.com"
  注:生成id_rsa私鑰公鑰時需要命不同文件名,密碼可設可不設。

5.添加ssh key到對應的GitHub或GitLab上面
  登錄GitHub系統;點擊右上角賬號頭像的“▼”→Settings→SSH kyes→Add SSH key。
  復制id_rsa.pub的公鑰內容到Key填寫框內。

6.測試公鑰配置是否成功
  $ssh -T git@github.com  

  FQA
1.Git克隆代碼需要輸入密碼?Git提交代碼需要輸入賬號、密碼的。
  tips:      1.Access denied.
          2.Authentication failed.
          3.Permission denied (publickey).
  說明:問題根源是TortoiseGit采用的是自己的ssh.exe生成密鑰,與git的密鑰生成方式不一致,導致密鑰無效。
  解決:  1.重新配置用戶名和郵箱,重新生成密鑰,把密鑰放入遠程倉庫中。
       2.檢查TortoiseGit右鍵的TortoiseGit -> Settings -> Network設置,
        將SSH client指向 ~Git\usr\bin\ssh.exe

2.Git采用 http 方式(而不是ssh)clone/pull/push代碼時,需要輸入用戶名密碼,解決每次輸入賬號密碼

  解決:執行存儲密碼命令
    $git config --global credential.helper store
  命令會在項目本地生成一個文本,記錄賬號和密碼。使用上述的命令配置好之后,再操作一次git pull,然后它會提示輸入賬號和密碼,這一次之后就不需要再次輸入賬號和密碼了。

 

常用命令
$git clone url                     #克隆遠程倉庫
$git --version                    #查看git的版本信息
$git branch                     #查看本地所有分支
$git branch -a                   #查看所有的分支
$git branch -r                    #查看遠程所有分支
$git branch dev                 #創建分支
$git branch -D master develop           #刪除本地庫develop

$git checkout dev                   #切換到本地dev分支
$git checkout -b dev               #創建分支並切換分支
$git checkout --track origin/dev           #切換到遠程dev分支

$git commit                   #提交
$git commit -am "test"                #提交並且加注釋
$git commit -m [message]               #提交暫存區到倉庫區
$git commit -v                     #提交時顯示所有diff信息

$git status                      #查看當前狀態
$git remote show                 #查看遠程庫
$git remote add origin url              #添加遠程庫
$git remote show origin                 #顯示遠程庫origin里的資源

$git pull                     #本地與服務器端同步
$git push origin master               #將文件給推到服務器上
$git push origin master:develop            #將本地庫develop與服務器上的庫進行關聯
$git push origin master:my-dev             #將本地庫與服務器上的庫進行關聯

$git merge origin/dev               #將分支dev與當前分支進行合並
$git add read.txt                  #將文件加入git
$git rm read.txt                   #從git中刪除指定文件

更多命令參考:https://www.cnblogs.com/zengming/p/7733099.html

 

備注:
作者:Shengming Zeng
博客:http://www.cnblogs.com/zengming/

本文是原創,歡迎大家轉載;但轉載時必須注明文章來源,且在文章開頭明顯處給明鏈接。
<歡迎有不同想法或見解的同學一起探討,共同進步>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM