當我們在 GitHub 上 fork 出一個倉庫后,如果原倉庫更新了,此時怎樣才能保證我們 fork 出來的倉庫和原倉庫內容一致呢?我們一般關注的是倉庫的 master(主干分支)的內容,通過以下步驟來保證他最新就可以了。
前期准備:
可以使用源碼管理可視化工具(客戶端)來管理源碼,例如「SourceTree」「GitHub Desktop」「Cornerstone」
這里我們使用「SourceTree」克隆「fork 出來的倉庫」,以 AFNetworking 倉庫為例進行介紹
步驟:
1、添加一個遠程倉庫,此時只是空殼,還沒有同步內容,引用 fork 的原倉庫地址
git remote add originUpstream https://github.com/AFNetworking/AFNetworking.git
2、commit(提交)本地的變更;如果本地沒有修改內容,此步驟可忽略
git commit
3、更新遠程倉庫,從引用 fork 的原倉庫地址同步內容,此時原倉庫的 master(主干分支)已經可以在本地訪問了
git remote update originUpstream
4、checkout(檢出)用於操作的本地分支 ,比如 master;如果此時分支為已檢出狀態,此步驟可忽略
git checkout master
5、直接從遠程倉庫的分支 pull(拉取) 數據
git pull originUpstream master
PS:或者本地已檢出分支基於遠程倉庫的分支進行 rebase(變基)操作
git rebase originUpstream/master
6、把本地已檢出分支的已提交數據 push(推送) 到自己 fork 的倉庫中
git push origin master