1. 程式人生 > >github----向開源框架提交pr的過程

github----向開源框架提交pr的過程

關於github的入門介紹請參考《GitHub入門與實踐》

本文主要是根據自己在摸索提交pr的程中的一些總結。

簡單過程

首先git分為本地倉庫(自己電腦中)和遠端倉庫(git官網自己的賬號中),倉庫可以理解為儲存程式碼的地方,簡單的說是在自己本地倉庫修改程式碼,提交到自己遠端倉庫,提交pr後被接受後再會被合併到master。

下面一步一步來。

詳細過程

申請賬號、新增ssh公鑰等過程就不說了哈。

fork

將專案fork到自己的倉庫中,可以在github的首頁搜尋到自己的想要的開源專案,我以flink為例:

這裡寫圖片描述

進去後,點出fork,稍等片刻,此專案便會出現在自己的倉庫中

這裡寫圖片描述

進到自己fork的專案中,就能看到Clone or download按鈕,如下,記下這個https連結。

這裡寫圖片描述

通過上面的步驟,已經將遠端倉庫建好

clone

需要將遠端倉庫clone到本地,此處省略安裝本地github的過程,隨便在哪個目錄(專案存放的目錄),右鍵開啟一個Git base,執行一下git clone https://github.com/***/***.git(使用上一步的https連結),等待命令完成,時間視下載速度而定,也許會比較慢,網上也有些可以提高git clone速度的方法,不防一試。

這裡寫圖片描述

上面的命令完成後,當前目錄下會多一個目錄,我clone的是flink,所以會多一個flink目錄,進到flink目錄中,試試跑一下git status

試試,會提示現在是master分支。

這裡寫圖片描述

git remote -v命令,可以看到此時只與自己的遠端倉庫建立了連線

這裡寫圖片描述

還需要與上游建立連線,這裡上游指的是一開始fork的那個專案源,以flink為例,執行如下命令:

git remote add upstream https://github.com/apache/flink.git

再用git remote -v可以看到:

這裡寫圖片描述

接下來就能建立分支了。

建立分支

接著上面的執行命令:git checkout -b flink-fs,這個命令的意思是建立一個叫flink-fs的分支,執行這個命令後bash將自動切換到新的分支下

修改程式碼

自行修改程式碼哈

提交

可以先使用git status來檢視有哪些檔案被修改了

這裡寫圖片描述

然後再git add ***.java將要提交的檔案都加上

然後再git commit -m "modify XX",需要注意的是git commit只是把修改的程式碼提交到當前分支(當前分支是flink-fs,而不是master),”modify XX”是本次提交的簡單說明

然後再git push origin flink-fs,這一步才是將當前分支推送到自己的遠端倉庫。

這時,在自己的遠端倉庫便能看剛才push上去的分支了

提交pr

找到New pull request

這裡寫圖片描述

需要注意的是compare處選擇剛才提交上來的分支

這裡寫圖片描述

然後點Create pull request

寫好名字,寫好說明,提交,就OK啦。

關於check不通過的問題

github有程式碼自己編譯和check機制,在你提交pr的時候,專案可能已經有了比較大的變更(每天都有世界各地的coder提pr),而你沒有將分支保持與專案同步,所以有可能會導致check失敗,pr被無視。

還記得我們在自己本地有一個flink master分支,然後又拉了一個flink-fs分支,然後在flink-fs上進行修改,提交的也是flink-fs,然後又想起了之前有一步是“與上游建立連線”,說到你可能已經知道了master的作用–用於遠端程式碼同步。

所以每次提交pr前,都要先從做程式碼同步。過程如下:

先fetch

這裡寫圖片描述
再rebase

這裡寫圖片描述

再push master

這裡寫圖片描述

push完後,遠端倉庫便可看到你的branch版本和master分支一致了,否則這個位置會顯示與master相差了多少次commit。

這裡寫圖片描述

做完這些操作,就可以回到之前的詳細過程來操作了。

相關推薦

github----開源框架提交pr過程

關於github的入門介紹請參考《GitHub入門與實踐》 本文主要是根據自己在摸索提交pr的程中的一些總結。 簡單過程 首先git分為本地倉庫(自己電腦中)和遠端倉庫(git官網自己的賬號中),倉庫可以理解為儲存程式碼的地方,簡單的說是在自己本地倉庫

github提交PR(pull request)過程和問題

前幾天boss讓做一個PR,一臉懵逼,查資料問同事,最後還被boss批,終於提交了PR。 PR,全程pull Request ,下面寫一下提交過程和我遇到的坑。 專案背景:一個開源專案,我自己建立了一個分支並進行大量修改,需要PR到master上面,boss進行merge

GitHub中整理出來的15個最受歡迎的Python開源框架,你喜歡哪個

python 開源 框架 爬蟲 web 從GitHub中整理出的15個最受歡迎的Python開源框架。這些框架包括事件I/O,OLAP,Web開發,高性能網絡通信,測試,爬蟲等。Django: Python Web應用開發框架Django 應該是最出名的Python框架,GAE甚至Erla

基於github 開源框架Android-PickerView-master實現省市三級聯動

廢話不多說,直接上程式碼。註釋也齊全: package com.bigkoo.pickerviewdemo; import java.io.IOException; import java.io.InputStream; import java.io.InputStre

通過 GitBook 開源框架GitHub 私有化部署 Wiki 文件

專案介紹 思路:通過將 Wiki 文件內容的倉庫託管在 GitHub 之上,並且將 GitBook 框架的程式碼放在倉庫中 ,然後找一臺有 Node.js 環境的伺服器,通過簡單的幾行命令就能部署成功,十分鐘內能搞定。從而具備多人協作、版本控制、Markdown 寫作、

POCO開源框架-模組載入解除安裝過程分析

一般地,基於POCO框架的程式結構都是按模組化架構的。 模組化處理過程主要涉及兩個標頭檔案: poco/1.4/Foundation/include/Poco/ClassLibrary.h poco/1.4/Foundation/include/Poc

一次linux開源社群提交補丁的經歷

背景 在開發過程中,偶然發現了spinand驅動的一個bug,滿懷欣喜地往社群提補丁。這是怎麼樣的一個bug呢? static int spinand_mtd_read(struct mtd_info *mtd, loff_t from, struct

開源框架那點事兒19》:特斯拉建“樁”與開源的生命力

充電站 otto 期權 eas gb2 平臺 程序 蘋果 名詞 在美國的矽谷,在中國的中關村,很多的技術先驅者懷揣夢想。用激情不懈地追求著他們宏遠的目標和巨大的個人財富。開源。正在成為這個時代眼下最火熱的名詞之中的一個。開源精神,作為一種合作協同的驅動力,正在發展為一種更

ssh框架提交表單數據後,數據庫表出現問號?的解決方法

div nco pla play character isp 指定 提交表單 span 解決方法如下:連接數據庫的時候需要指定編碼方式,如下所示: jdbc.url = jdbc:mysql:///dbName?useUnicode=true&charact

NancyFx 2.0的開源框架的使用-Authentication

web src query msi containe override 項目 img 9.png 新建一個空的項目 新建好了空的項目以後,接著通過NuGet安裝一下三個包 Nancy Nancy.Hosting.Aspnet Nancy.ViewEnglines.Ra

NancyFx 2.0的開源框架的使用-Basic

password return public 文件夾 null 這是NancyFx開源框架中的Basic認證,學習一下!首先當然是新建一個空的Web,BasicDemo 繼續在項目中添加Nuget包,記得安裝的Nuget包是最新的預發行版NancyNancy.Authentication.

NancyFx 2.0的開源框架的使用-Caching

http obj manage flush pri pan 存儲 ice img 新建一個空的Web項目,命名CachingDemo 然後添加三個Nuget安裝包 Nancy Nancy.Hosting.Aspnet Nancy.

NancyFx 2.0的開源框架的使用-CustomModule(自定義模塊)

nuget eat ews pub 技術分享 continue for eth color NancyFx框架的自定義模塊 新建一個空的Web項目 然後通過NuGet庫安裝下面的包 Nancy Nancy.Hosting.Aspnet 然後添

github創建maven項目過程

com rate osi art test 創建 mode openss false 筆者運行環境: 1. windows 10 2. cygwin,安裝openssh 3. git版本 2.11.0 前置操作,如果已經配置可以略過 1. cygwin下執

初識數據庫連接池開源框架Druid

數據庫連接Druid是阿裏巴巴的一個數據庫連接池開源框架,準確來說它不僅僅包括數據庫連接池這麽簡單,它還提供強大的監控和擴展功能。本文僅僅是在不采用Spring框架對Druid的窺探,采用目前最新版本druid1.0.26 github地址:https://github.com/alibaba/druid。在

開源框架 系統

代碼 統架構 日期轉換 核心 XML ear 成本 com 單點登錄 JFinal / JFinal JFinal 是基於 Java 語言的極速 WEB + ORM 框架,其核心設計目標是開發迅速、代碼量少、學習簡單、功能強大、輕量級、易擴展、Restful。在擁有J

開源框架那點事兒25》:對框架模板引擎實現方式的改造實錄

port 內嵌 代碼調試 iter put 文件路徑 children nts fault 點滴悟透設計思想,Tiny模板引擎優化實錄! 增加框架設計興趣小組:http://bbs.tinygroup.org/group-113-1.html Tiny模板引擎的實

開源框架Mahout配置

開源框架mahout配置開源框架Mahout配置機器學習這兩年特別火,ATB使勁開百萬到幾百萬年薪招美國牛校的機器學習方向博士,作為一個技術控,也得折騰下,就這樣來初步折騰下Mahout這個機器學習的主流開源框架。一、Mahout簡介Mahout的中文意思:馭象的人,再看看Mahout的logo,騎在象頭上的

25類Android常用開源框架

視頻 from rod gen map cli 崩潰報告 進行 ase 1、圖片加載,緩存,處理 框架名稱功能描述 Android Universal Image Loader 一個強大的加載,緩存,展示圖片的庫,已過時 Picasso 一個強大的圖片下載與緩

c#開源工具(或者C# 開源框架

stack windows 框架 ado doc 2.0 release dal .com 1.轉載聲明:本篇內容轉載自http://www.cnblogs.com/gaoyuchuanIT/articles/5612268.html。 2. C# 開源框架(整理)