2012-10-31 33 views
2

昨天我在github上完成了我的第一個fork。github fork從原始倉庫獲取所有更改

我修改了一些內容,然後對原始回購進行了拉取請求。

然後我發現我做錯了,現在我想同步我的叉到原始的repo,以便我所做的所有更改(創建新文件,修改了一些..)將被刪除。

混帳試圖獲取上游 混帳合併上游/大師

,並在此期間原回購所做的更改都會同步到我的叉子但變化我沒有留在我的叉子

我希望我的回購與原始回購相同。

回答

4

您可以通過在原始倉庫中添加一個遙控器來修復您的貨叉,從那裏取貨,重置您的分支以匹配拉出的分支,然後強制將分支推到您的貨叉上。

假設你的分叉式回購由產地代表,這裏是高手,你所擁有的唯一分公司爲例:

git remote add upstream http://github.com/original.git 
git fetch upstream 
git reset --hard upstream/master 
git push -f origin master 

現在主人要在兩個回購同一個地方。當你進行合併時,你可以將引用向前移動(稱爲快進合併),因爲你方沒有任何東西存在,或者你做了一個新的提交,因爲兩者都有改變。如果你想拋棄你的提交,重置就是這裏的答案 - 不合並。

如果要重置回他們在哪裏初始回購,你可以不用檢查出來與其他分支:

git push -f . upstream/feature1:feature1 
git push -f origin feature1 

.說了同樣的回購內推。這是移動分支指針而不必檢出分支的聰明方法。推動中的冒號語法表示<source>:<destination>。如果省略了:<destination>,則意味着相同的名稱,這就是爲什麼您不經常使用推送示例查看語法的原因。一個更常見的例子是,當您將本地分支推送到具有不同名稱的遠程分支時:git push origin myexperiment:dev會將遠程的開發分支更新爲myexperiment指向的內容。

相關問題