2013-12-19 33 views
1

幾個月前,我分發了一個存儲庫,進行了更改並提交了一個拉取請求,最終被接受進了主服務器。自從我的硬盤驅動器上我的叉子的代碼一直未變。現在,我想再次貢獻給同一個存儲庫。我的fork中的代碼與master不同步,因爲它有從未被拉入master的更改,並且master已經移動。我應該刪除我的分叉還是強制,還是有更好的方法?我應該如何更新過時的叉子?

我以爲這可能以前曾被問過。在搜索過程中,我發現Pull new updates from original GitHub repository into forked GitHub repository,但該問題中的StackOverflower想要保留本地更改,而我想放棄所有本地更改並採取主目前的任何操作。

回答

8

如果您的分支中沒有您想要保留的任何東西,刪除和重新分配肯定是一種選擇。如果你不想這樣做,還有很多其他的方式來更新你的回購。

我可能會開始添加上游回購作爲遠程,如果你還沒有。有這樣做:

git remote add upstream <clone-url> 

然後,獲取所有從上游遠程的變化:現在

git fetch upstream 

,你可以做任何你想要與新取的提交。例如,要在本地master分支重置爲一個在上游回購,運行此:

git checkout master 
git reset --hard upstream/master 

可以推,最多更改爲您的GitHub叉這樣的:

git push --force origin master 

更多關於使用遙控器,我推薦使用Pro Git書籍中的遙控器本章:2.5 Git Basics - Working with Remotes

+0

非常感謝,這正是我需要的! – smockle

+0

我可以不用CLI嗎? –

+0

@HabibRohman可能。取決於你使用的GUI。儘管我的經驗主要與CLI有關。 – Ajedi32

相關問題