1. 程式人生 > >git如何同步fork的專案

git如何同步fork的專案

git同步fork的專案

我們在使用git時,經常會需要fork別人的專案,然後通過git clone,git push等操作來在本地進行專案的修改,這時候如果源專案發生了變化,我們又想同步這種變化,要怎麼做呢? 此時源專案中已發生變化,我們fork的專案有我們自己所做的修改。 注意,如果直接同步的話,會失去自己所做的修改,解決辦法如下。

操作步驟

首先,我們要配置遠端分支,指向源專案,這是我們同步源專案中修改的前提:

  1. 開啟git bash,檢視當前已配置好的遠端庫:
git remote -v
origin  https://github.com/YOUR_USERNAME/YOUR_FORK.git (
fetch) origin https://github.com/YOUR_USERNAME/YOUR_FORK.git (push)
  1. 新增遠端upstream 倉庫:
git remote add upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git
  1. 檢查遠端庫:
git remote -v
origin    https://github.com/YOUR_USERNAME/YOUR_FORK.git (fetch)
origin    https://github.com/YOUR_USERNAME/YOUR_FORK.git (
push) upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (fetch) upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (push)

接下來進行fork的同步:

  1. 首先獲取源專案中的修改,被儲存在分支upstream/master中:
git fetch upstream
remote: Counting objects: 75, done.
remote: Compressing objects: 100% (53/53), done.
remote: Total 62 (
delta 27), reused 44 (delta 9) Unpacking objects: 100% (62/62), done. From https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY * [new branch] master -> upstream/master
  1. 切換到master分支:
git checkout master
Switched to branch 'master'
  1. 把分支upstream/master的內容merge到本地master:
git merge upstream/master
Updating a422352..5fdff0f
Fast-forward
 README                    |    9 -------
 README.md                 |    7 ++++++
 2 files changed, 7 insertions(+), 9 deletions(-)
 delete mode 100644 README
 create mode 100644 README.md

完成這個操作後,本地專案就會同步源專案中的變化,而自己所做的修改不會丟失 4. 把修改上傳到github中自己的專案,直接git push即可,無需git addgit commit

參考連結