Situation :

本地端已存在 git repo,現在想將本地端的 git repo 推送到遠端的新 repo

Action :

1.先到 GCSR 新增遠端新 repo
到 https://source.cloud.google.com/repos ->點擊新增存放區->點擊建立新的存放區->點擊繼續->輸入存放區名稱->選擇已存在專案或新增專案->點擊建立

2.A建立本地端 repo 與SSH驗證

2.A.1在”請選取將程式碼推送至存放區的選項:”選擇”從本機 Git 存放區推送程式碼”

2.A.2在”選取您偏好的驗證方式:”選擇”SSH驗證”

2.A.3點擊透過Google Cloud 註冊安全殼層金鑰組的連結

2.A.4登入 Google 帳號

2.A.5在註冊安全殼層金鑰的視窗,輸入金鑰名稱和金鑰內容

金鑰名稱沒有特別限制,但請盡量提供具體且明確的名稱,如某某電腦

如果你沒有金鑰請按照這篇產生一組新的金鑰。
如果你已經有金鑰按照這篇把金鑰內容填到註冊安全殼層金鑰中。

完成後在註冊安全殼層金鑰視窗都會填入金鑰名稱和金鑰內容,後續就可以透過SSH驗證進行git操作

2.A.6最後進行 3.從本機 Git 存放區推送程式碼:


2.B建立本地端 repo 與手動產生認證(手動產生認證可能會有問題,可以的話盡量使用2.A的SSH來驗證)
2.B.1在”請選取將程式碼推送至存放區的選項:”選擇”從本機 Git 存放區推送程式碼”

2.B.2在”選取您偏好的驗證方式:”選擇”手動產生的憑證”

2.B.3點擊 1.產生及儲存 Git 憑證->將 Configure Git 頁面中的 Windows Users 程式碼複製並貼到本地端的 git bash

2.B.4移動到本地端專案路徑並進行 2. 進行將 Cloud Repository 新增為遠端存放區:(這裡注意最好編輯成1行再貼到 git bash,如 git remote add google https://xxxx)

2.B.5最後進行 3.從本機 Git 存放區推送程式碼:


3.錯誤處理

a.注意若推送時出現以下錯誤

fatal: remote error:
Invalid authentication credentials.
Please generate a new identifier: https://source.developers.google.com/new-password

代表要重新產生憑證,移動到 https://source.developers.google.com/auth/start?scopes=https://www.googleapis.com/auth/cloud-platform,再選擇登入帳號後會出現 Configure Git 頁面,將 Authenticate as yourgoogleaccount to source.developers.google.com 下方顯示的程式碼貼到 git bash(直接複製整段程式碼貼到 git bash 即可)。
Configure Git 頁面主要是用來設定本地端 git 和遠端 repository 的權限,有上下 2 部分的 code,上方的 code 是用在 cmd ,下方的 code 是用在 git bash。

b.若推送時出現以下錯誤

fatal: unable to access ‘https://source.developers.google.com/p/reponame/’: SSL certificate problem: self signed certificate in certificate chain

可以考慮使用以下解法

  1. 試著使用SSH協議代替HTTPS協議。這樣可以避免SSL證書驗證的問題。你需要添加你的公鑰到你的Google Cloud Platform帳戶中。詳細的操作指南可以參考這個連結:https://cloud.google.com/source-repositories/docs/authentication
  2. (快速)如果你想繼續使用HTTPS協議,那麼可以嘗試在Git命令中添加一個參數來忽略SSL證書的驗證。你可以使用以下命令:

    git config --global http.sslVerify false

    這會將Git的全局設置中的http.sslVerify設置為false,這樣Git就不會驗證SSL證書了。但是,這樣做會降低安全性,因為Git無法確定你連接的網站是否可信。

Result :

完成後在 GCSR 的 repo 便可看到推送的內容。