前言
fork可以理解為對某個倉庫的拷貝.fork工作流可以讓我們在不影響主項目的前提下,自由改動代碼.
fork常用的使用場景有兩種
- 向別人的項目提建議
- 從別人項目作為自己項目啟動開端,延伸開發(fā)
什么是fork工作流呢?
要理解fork,需要明白三個分支的概念:本地分支(local branch),遠程分支(一般為origin branch),公共分支(upstream branch).
我們在進行日常代碼pull和push的時候,是對origin的修改和同步,如果開發(fā)完成后,想將自己的改動同步到公共分支,需要創(chuàng)建pull request
如果其余貢獻者已經對項目進行了修改,如果想在這個基礎上做新的修改,需要同步fork,就是從公共倉庫獲取最新代碼
操作
開始你的fork:
在項目頂部,點擊fork按鈕,現(xiàn)在你就擁有一份倉庫的fork啦!
點擊clone按鈕,就可以獲取git 在fork之后的URL了.
開發(fā)流程
1.配置git
2.為fork創(chuàng)建一份本地的拷貝
復制項目的URL,在終端進入你理想的文件夾下,執(zhí)行
git clone ssh:``//git@git.sankuai.com/UserName/projectName
3.驗證
通過git remote -v 查看遠程分支,默認的遠端倉庫是origin.如下
origin https://github.com/user/repo.git (fetch)
origin https://github.com/user/repo.git (push)
如果想要隨時更新公共分支,可以加入遠端公共分支的倉庫
git remote add upstream <url>
再次查看 git remote -v
$ git remote -v
origin https://github.com/user/repo.git (fetch)
origin https://github.com/user/repo.git (push)
upstream https://github.com/otheruser/repo.git (fetch)
upstream https://github.com/otheruser/repo.git (push)
提示:如果本地新增了branch,在git push之后,之后push到origin倉庫,upstream倉庫是沒有的,所以需要,來設置upstream倉庫,然后通過git push upstream --tags,更新公共倉庫的tag
4.同步遠端分支
想要保持本地分支和遠端公共分支同步,可以通過以下命令
git fetch upstream ``//從遠端分支獲取更新`
git checkout master
git merge upstream/master ``//merge更新
5.提交
提交代碼流程是一樣,只是加了一個創(chuàng)建pull request的操作
git commit — git pull — git push — 打開git的網頁,創(chuàng)建pull request,請隊友code review