2021年5月7日 星期五

[Git 文章收集] GitLab -更新 Fork 出來的專案

 Source From Here

Question
在 GitLab 的介面上,可以透過 Fork 的功能,把別人的專案建立一個 fork 到自己的帳號底下,例如原始專案的網址是 http://gitlab/userA/project.git, Fork 出來的專案網址會是 http://gitlab/userB/project.git。 不過原始專案仍然會繼續更新,而自己 Fork 下來的專案則會停在執行 Fork 當時的狀況。

HowTo

1. git clone Fork 出來的專案路徑
$ git clone http://gitlab/userB/project.git

2. git remote 操作前後先看狀態
$ git remote -v
origin http://gitlab/userB/project.git (fetch)
origin http://gitlab/userB/project.git (push)

3. git remote add 新增 upstreamupstream 是 remote name,可以自己取名,不要重複就好
$ git remote add upstream http://gitlab/userA/project.git
$ git remote -v
origin http://gitlab/userB/project.git (fetch)
origin http://gitlab/userB/project.git (push)
upstream http://gitlab/userA/project.git (fetch)
upstream http://gitlab/userA/project.git (push)

有了原始專案的來源後我們就可以開始做更新了!

4. 切換回本地的 master
$ git checkout master


5. 接著把 upstream 的 master 更新給拉進來
$ git pull upstream master


6. 切換到開發用的分支 rebase 自己的 master
$ git checkout working_branch_name
$ git rebase master

7. 如果自己的 master 有 commit,也可以用 --rebase 來避免不必要的 merge 操作
$ git checkout master
$ git pull --rebase upstream master

8. 如果沒有發生衝突的話這樣應該就完成了本地的更新,再把更新後的 branch push 出去就行了
$ git push origin master

這時再回去看看自己的專案頁面,應該會發現已經同步到最新的狀態了!
PS. 修改 remote 名稱
$ git remote rename {oldName} {newName}


Supplement
Git doc - 6.2 GitHub - 參與一個專案
如果你想要參與一個你沒有推送權限的專案,你可以「fork」一份。這代表說 GitHub 會複製一份這個專案的副本給你,並且你對這副本有全部的權限。這副本會存在於你的帳號下,你可以對它進行推送...


沒有留言:

張貼留言

[Git 常見問題] error: The following untracked working tree files would be overwritten by merge

  Source From  Here 方案1: // x -----删除忽略文件已经对 git 来说不识别的文件 // d -----删除未被添加到 git 的路径中的文件 // f -----强制运行 #   git clean -d -fx 方案2: 今天在服务器上  gi...