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
可以考慮使用以下解法
- 試著使用SSH協議代替HTTPS協議。這樣可以避免SSL證書驗證的問題。你需要添加你的公鑰到你的Google Cloud Platform帳戶中。詳細的操作指南可以參考這個連結:https://cloud.google.com/source-repositories/docs/authentication
- (快速)如果你想繼續使用HTTPS協議,那麼可以嘗試在Git命令中添加一個參數來忽略SSL證書的驗證。你可以使用以下命令:
git config --global http.sslVerify false
這會將Git的全局設置中的http.sslVerify設置為false,這樣Git就不會驗證SSL證書了。但是,這樣做會降低安全性,因為Git無法確定你連接的網站是否可信。
Result :
完成後在 GCSR 的 repo 便可看到推送的內容。