跳至主要内容

Git 建立新專案 vscode

Git server + vscode 下建立新的專案步驟

假設
專案名為: Totem
Server 為: totem@git.xp.totem

Git Server 建立 remote Repo

    $ mkdir Totem.git
$ git init --bare

vscode 執行 clone repo 指令

  • 使用 vscode 的工作命令列 (ctrl+shift+p)
    • step 1. 輸入 git clone ,選擇 Git:Clone
    • step 2. 輸入 url : totem@git.xp.totem:~/GitRemote/trunk/Totem.git
    • step 3. 選擇本地端資料夾 clone 到本地端

Troubleshooting

pull-push 時發生 Unable to negotiate

Unable to negotiate with xxx.xxx.xxx.xxx port 22: no matching host key type found. Their offer: ssh-rsa,ssh-dss

  • 需配置 SSH 密鑰
    • step 1. 在本地端先生成密鑰
    • step 2. 此時會在本地端的 ~/.ssh 下產生一組公私鑰 id_rsah , id_rsa.pub
    • step 2. 手動將 ~/.ssh/id_rsa.pub 的內容複製到遠端的 ~/.ssh/authorized_keys 文件內容中

keygen

    $ ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa
  • 設定 local ~/.ssh/config
    Host git.xp.totem
Hostname git.xp.totem
User totem
IdentityFile ~/.ssh/id_rsa
IdentitiesOnly yes
HostkeyAlgorithms +ssh-rsa
PubkeyAcceptedKeyTypes +ssh-rsa
  • vscode 設定 git ssh 金鑰

setting.json

    "terminal.integrated.env.windows": {
"GIT_SSH_COMMAND": "ssh -i ~/.ssh/id_rsa"
},
"terminal.integrated.env.linux": {
"GIT_SSH_COMMAND": "ssh -i ~/.ssh/id_rsa"
},
"terminal.integrated.env.osx": {
"GIT_SSH_COMMAND": "ssh -i ~/.ssh/id_rsa"
}
  • 重啟 vscode