2016-02-19 111 views
0

我需要創建一個修補程序來提交對應用程序所做的更改。無法使用git set-url修改遠程後創建修補程序

我做了什麼至今:

  1. git clone https://github.com/someapp
  2. 遠程修改到我的帳戶到位桶。
  3. 進行修改,並承諾一切
  4. 全押修改到位桶
  5. 修改遠程回原來的版本庫
  6. 嘗試使用git format-patch origin/master --stdout創建補丁。此命令不會生成輸出

在這種情況下我將如何生成補丁?我可以看到所有提交內容git log

+0

與其修改遠程URL,我建議添加兩個單獨的遙控器,以便您可以跟蹤它們。 –

回答

1

讓我來說明你做了什麼。當你克隆GitHub庫,origin/master和本地master分支時,都指向某個提交。我們稱之爲A。現在讓我們說,在更改origin遠程的URL後,您提交了一個提交B並將其推送。現在origin/mastermaster都指向提交B。當您將origin的URL更改回原始GitHub回購時,origin/master仍指向提交B。因此,您創建補丁的嘗試不會輸出,因爲您的本地masterorigin/master之間沒有區別。

請記住,origin/master是一個「遠程跟蹤分支」。儘管遠程跟蹤分支旨在反映遠程分支,但它們存儲在本地。當你改變遙控器的URL時,奇怪的事情會發生,就像你看到的一樣。

一個解決方案是將兩個不同的遙控器添加到您的存儲庫。這樣,您可以跟蹤BitBucket回購的master和原始GitHub回購的master

+0

我將添加回原始回購看看我是否可以生成補丁。 – rcode74

+0

感謝您的詳細解釋,瞭解遠程跟蹤分支及其工作原理非常有幫助。由於我能夠使用git log列出提交,所以我使用命令'git format-patch '創建了一個修補程序,使用原始GitHub庫中最後一次提交的commit-id。 – rcode74

相關問題