在 GitLab 的介面上,可以透过Fork
的功能,把别人的专案建立一个 fork 到自己的帐号底下,
例如原始专案的网址是 http://gitlab/userA/project.git
,Fork
出来的专案网址会是 http://gitlab/userB/project.git
。
不过原始专案仍然会继续更新,而自己Fork
下来的专案则会停在执行Fork
当时的状况。
1.git clone Fork出来的专案路径
$ git clone http://gitlab/userB/project.git
2.git remote 操作前后先看状态
$ git remote -v
预设应该只会有 origin 这个 remote:
originhttp://gitlab/userB/project.git (fetch)
originhttp://gitlab/userB/project.git (push)
3.git remote add 新增upstream
,upstream
是 remote name,可以自己取名,不要重複就好
$ git remote add upstream http://gitlab/userA/project.git$ git remote -v
再看一次现有的remote应该会发现多了两组upstream
(fetch & push):
originhttp://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 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}