2013-03-31 25 views
4

在github上有一個回購,我想要建立。這樣做的最佳做法是什麼?這是我所做的:在Github上分支回購以開始您自己的最佳實踐

1)叉回購。 2)開始一個新的回購。 3)更改分叉回購的遠程起源網址到新的回購。 4)將新回購的本地副本推送到github。

這給了我一個新的回購「起點」,但是,我仍然有原始回購的提交歷史等。什麼是最好的做法/禮儀保持這樣的事情(而不是刪除提交歷史&開始從頭開始)

無論我做什麼,原作者都會獲得完整的功勞,但看起來提交歷史可能會混淆想要使用我的回購的人。

+0

爲什麼提交歷史會讓人困惑? – JJJ

+0

我不確定。當談到git/github時,我非常青睞,但分叉的回購看起來與起源相同(本質上,它是)。一旦我開始添加功能/代碼,它將會有所不同,但提交歷史將是相同的。這是預期的事情嗎?這些類型的東西的正常工作流程是什麼? –

+1

歷史記錄顯示誰進行了提交。只有禮貌的是,你不會抹去歷史(並且讓它看起來像你是唯一的貢獻者)。 – JJJ

回答

4

一旦我開始添加功能/代碼,它將會不同,但提交歷史將是相同的。這是預期的事情嗎?

是的,但叉背後的真實想法是給你回upstream回購,通過pull request(即你已付出GitHub上側回購)貢獻的可能性。

這就是爲什麼你通常不只是將原始地址更改爲新的回購協議,而且還註冊了一個遠程回購協議'upstream',指的是您分叉的原始回購協議。

fork

的其他的想法,即使你不回貢獻,是跟上從upstream任何進化:你可以git fetch upstream,以及合併或從上游您要重訂任何新的提交。

+0

您最後的評論可能是人們無法做到的事情,然後從未將其提交添加回上游。大多數項目都希望您在最新的上游提交的頂端重新提交您的提交,然後他們甚至會查看您的請求。對於維護者來說,如果他們必須爲最新的「HEAD」重新佈局ontop,可能會發生衝突,那麼額外的工作就可以完成。 – g19fanatic

+0

我理解分叉,修復和執行pull請求(在某種程度上)。如果您正在爲原始repo積極構建功能或修復錯誤,這對我來說很有意義。如果我想爲需要使用原始回購的利基受衆添加超特定功能,但不一定適合其正常使用情況?分叉錯了嗎? –

+2

@DanB。不,因爲我的答案的最後一句話:分叉可以讓你在「上游」回購和你的分叉之間保持強有力的聯繫。可以說,你可以做同樣的事情(爲了跟上最新的'上游'修改而從'上游'拉動),但最好清楚地提到你的GitHub倉庫來自哪裏。即使您不會向「上游」返回任何拉取請求,該叉也會非常明顯。 – VonC