簡體   English   中英

git將本地分支推送到遠程存儲庫

[英]git push local branch to remote repository

我將朋友的git存儲庫克隆到了我的工作站。 然后,我創建了自己的分支並開始工作。 我還獲得了我最初從中克隆的遠程存儲庫的ssh私鑰。

現在,當我嘗試將更改推送到該遠程存儲庫時,出現“致命錯誤:遠程端意外掛起”錯誤。

git push origin anshumanbhartiya
fatal:The remote end hung up unexpectedly

在這里,anshumanbhartiya是我創建的要使用的分支的名稱,我正嘗試將此分支推到克隆的源。

我的問題是我知道我應該使用提供給我的密鑰來推動更改,但我只是想不出如何使用該密鑰。 在〜/ .ssh /目錄中,我已經存儲了在設置github時生成的自己的私鑰和公鑰。 我不知道該如何處理我的朋友的ssh鍵。

請幫忙!

我已經解決了問題。 當我從本地目錄執行git config --list時,遠程源URL顯示類似git://git.domain/git_repo.git的內容。 必須將其從git://git.domain/git_repo.git更改為git@git.domain:/git_repo.git

這是因為git://網址不接受任何寫入。 當我們最初克隆git repo時,我們應該做git clone git@git.domain,而不是進行git clone git://。

之后,我們需要確保正確配置了ssh-key。 就我而言,我重新生成了一個新的公私鑰對。 沒必要,但只是為了確保我做到了。 我還在〜/ .ssh / config中添加了一個新文件,並添加了主機,用戶和身份文件,以便將使用我朋友的回購協議的私鑰而不是我的私鑰。

而且,最后,在推送到他的遠程倉庫時,我不得不給出一些類似git push ssh://git@git.doman/git_repo.git的內容。 這可能是最重要的步驟。 ssh://之后,我們不應該錯過git@git.com

最明智的方法是讓您的朋友將您的公鑰放在這里,而不是生成新的。

或者,您可以使用~/.ssh/config強制它在連接到此特定主機時使用備用密鑰。

如果您正在運行一個ssh-add keyfilessh-add keyfile ),也可以將該密鑰添加到ssh-agent。

我不是專家,但我認為您可能需要替換用戶目錄(在計算機環境變量中定義)中的本地私鑰(id_rsa),並且應該在名為.ssh的子目錄中。 但是先備份現有的密鑰

首先說說分支,克隆您的好友存儲庫時,您實際上已經創建了自己的分支。 恰好是在遠程跟蹤您的friends分支,這實際上只是縮短了git-push命令。

話雖如此,我認為完成此工作流程的首選方法是將github上的好友項目分叉到自己的存儲庫中。 然后,您將推送到您的存儲庫,該存儲庫應正確設置ssh憑據。 然后,您的朋友可以從您的存儲庫中提取。 Github有拉取請求 ,或者您可以告訴您的朋友從回購中手動拉出。

值得一提的是,該方法仍然允許您從其存儲庫中獲取上游補丁。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM