2011-12-18 71 views
1

我應該對我的客戶在GitHub上,那裏的變化將是對他的庫項目。我試圖遵循fork示例,但只能將更改傳遞到我的帳戶存儲庫?如何推動從分叉項目改變原來的項目?

在GitHub上的例子,叉回購,他們創建一個遠程叫upstream指向原始項目。我可以

get fetch upstream 
git merge upstream/master 

我能夠

git push –u origin 

其複製我改變我的帳戶上傳變成我的回購從它那裏得到了改變。

我試圖

git push –u upstream 

爲推動原始帳戶中我的變化。我得到了以下錯誤

你不能推到混帳://github.com.octocat/SpoonKnife.git 使用[email protected]/Spoon0-Knife.git

+3

由於您已經發布的問題數量,請至少提供適當格式的_try_,並確保您的代碼/命令行示例至少具有正確的語法/拼寫。這是從這裏的案例。 – Mat 2011-12-18 18:27:04

+0

那麼,如果您沒有對客戶端存儲庫的寫入訪問權限,則無法將更改推送給它。 – 2011-12-18 18:28:08

回答

3

基本上,爲了與客戶合作,你有兩個主要選項:

  • 發送您的客戶端pull request(更多關於這方面的信息在此GitHub help item)。這允許您的客戶在合併之前審查,討論和/或請求對提案進行一些更改。
  • 來自客戶的請求將作爲committer添加到他們的項目中。這將允許您直接將您的提交推送到他們的存儲庫,而不需要您的叉/克隆存儲庫。

作爲一個方面說明,Spoon-Knife.git是GitHub的只讀存儲庫(用於演示目的)之一,你將不能夠承諾(除非你的客戶 GitHub上)。因此,客戶的upstream遠程Git應指向一個不同的版本庫

這裏是(你分叉和克隆的資源庫到本地磁盤後,應遵循)的步驟:

  1. 刪除上游參考:git remote rm upstream
  2. 添加在您的客戶的信息 - git remote add upstream [email protected]
  3. 把你的變化 - git push -u upstream mastergit push -u將設置遠程存儲庫的HEAD。
  4. 如果你想拉一樣的 - git pull upstream master

如果你喜歡的名字由來與原籍取代上行,但仍按照步驟1到刪除提及勺Knife.git。然後在第2步 - git remote add origin [email protected]

0

git://github.com.octocat/SpoonKnife.git是一個只讀網址。正如GitHub所說,相應的可寫URL是git @ github。comoctocat/Spoon0-Knife.git。 如果您希望能夠推送上游存儲庫,則必須要求(作爲上游團隊,即您的客戶)作爲提交者添加。