# 5分鐘上手Github之--Ameba篇

**URL:** <https://forum.amebaiot.com/t/5-github-ameba/459>\
**Category:** General\
**Created:** [April 12, 2021, 11:27am UTC](https://forum.amebaiot.com/t/5-github-ameba/459 "2021-04-12T11:27:51Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![xidameng](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.amebaiot.com/xidameng/32/18_2.png) [@xidameng](https://forum.amebaiot.com/u/xidameng)\
**Post date:** [April 12, 2021, 11:27am UTC](https://forum.amebaiot.com/t/5-github-ameba/459/1 "2021-04-12T11:27:51Z")

</div>

![image](https://us1.discourse-cdn.com/flex016/uploads/ameba/original/1X/4fdb3e8d0479c92853f5e334a5099354b18f1b99.png)

# 📌 Git + hub = Github

大多數學生maker都聽説過 **Github** ，但是不是所有的都知道Github到底是什麽、該怎麽使用，實際上，Github就是使用Git作爲版本控制工具的綫上代碼托管平臺(hub)，Git提供版本控制，hub提供托管平臺，合起來就是 **Github** ！

  

# 📌 Ameba + Github

Ameba的開源SDK (Software Development Kit) 也是全部托管在Github上面，這裏包括

- [Arduino SDK](https://github.com/ambiot/ambd_arduino)
- [MicroPython SDK](https://github.com/ambiot/ambd_micropython)
- [Realtek Standard SDK](https://github.com/ambiot/ambd_sdk)

大家可以點擊上面的文字鏈接來訪問所有的SDK。那麽既然SDK全部托管在Github上面，該如何使用這個平臺把自己做好的功能/軟體庫加入Ameba的官方Github倉庫呢？ 接下來就用5分鐘時間，以Ameba的Arduino SDK爲例，給大家快速演示一下使用Github來貢獻Ameba的方法！

  

# 📌 Ameba Arduino倉庫的貢獻流程

不管是什麽開源專案，第一部都要看一看這個開源專案作者所留下的 **README** ，這裏以Ameba的Arduino倉庫爲例，來看一下它的README吧

### 一. 快速瀏覽README

> <https://github.com/Ameba-AIoT/ameba-arduino-d/blob/master/README.md>

### 二. 查看貢獻者須知

因爲 **README** 裏面有寫貢獻者須知，所以爲了尊重原作者的無私分享，以及讓自己的提交的新的功能可以更快地被接納，我們要看一下須知裏的内容

> **[Contributing to Ameba](https://github.com/Ameba-AIoT/ameba-arduino-d/wiki/Contributing-to-Ameba)**
>
> AmebaD Arduino third-party package SDK. Contribute to Ameba-AIoT/ameba-arduino-d development by creating an account on GitHub.

ok，看了之後會發現，主要的内容是關於 **統一代碼風格** 以及填寫的 **提交信息的格式** 。 那麽所有的信息都瞭解了，現在可以正式開始了。

### 三. 創建一個fork

PS: 在正式開始之前，一定要確認你已經有了一個Github的賬號，Github是完全免費的服務，所以可以放心注冊。

想要把新的功能加入官方的代碼倉庫的第一步，就是創建一個跟它一摸一樣的倉庫。

Github在這點上已經幫我們預備好了這個功能，那就是 **fork** ，

![image](https://us1.discourse-cdn.com/flex016/uploads/ameba/original/1X/aa41db67a7c48bf1f5320a65b1e716a3f8820978.png)

先找到想要fork的代碼倉庫，然後在Github頁面的右上角就能看到三個并排的按鍵，最右邊的就是fork按鍵，點擊fork （不要點旁邊的數字）就輕鬆搞定啦。

### 四. 在自己的fork中加入你的代碼

這次以我改進的 **WiFi Control Car** 專案爲例，這個專案使用了Ameba官方提供的HTTP網站頁面示例以及第三方的馬達控制庫，可以讓Ameba化身馬達控制器以及一個HTTP的服務器，只要用任意的瀏覽器登錄Ameba的服務器，就可以輕鬆遙控小車移動

這裏是演示影片

[![](https://us1.discourse-cdn.com/flex016/uploads/ameba/original/2X/f/f10295f5b8da4e90f37c578e8fc993cd946d3a7a.jpeg "AMB22 Ameba WiFi Remote Control Car") ](https://www.youtube.com/watch?v=ItVaPQ4dv8Q)

那麽源碼已經准備好了，該如何加入剛剛fork好的Github倉庫呢？步驟只有五個，

1. 找到 “ambd\_arduino/Arduino\_package/hardware/libraries/WiFi/examples/ ” 的路徑  
這裏是我們平時存放WiFi相關的example示例的地方，我們要先找到這個地方才能加入自己的東西

2. 點擊右上角的 **Add file → Create new file**  

3. 建立文檔和文件名  
注意：Arduino IDE默認所有的ino格式示例都必須存放在同名的文件夾下面，所以我們在文本框中輸入“WiFiControlCar/WiFiControlCar.ino" 來創建示例代碼，  
 ![image](https://us1.discourse-cdn.com/flex016/uploads/ameba/original/1X/d5d747c2017365afa9a904b8fae32c7a1a0ab688.png)

4. 粘貼你的代碼進去吧  

5. 填入正確格式的提交信息並提交（Commit）

### 五. 最後一步：創建合并請求(Pull Request)

到目前爲止，我們完成了代碼的上傳，但是還沒有將新的代碼加入官方的代碼倉庫中，那麽方法就是合并請求 Pull Request （簡稱 PR）。

接下來只需要幾個簡單的步驟就可以創建一個正確的PR，

1. 回到我們fork過的原始代碼倉庫

2. 點擊上面的Pull Request

3. 點擊“compare across forks"

4. 在"head repository"中選擇帶有我們自己賬號名字的fork

5. 點擊”Create pull request"

# 📌 成功！

> 完成！ Congratulations ㊗ 🎉

你剛剛完成了一個完整的綫上開發合作！

你的PR信息會以以下的形式呈現給代碼倉庫的管理者

 ![image](https://us1.discourse-cdn.com/flex016/uploads/ameba/original/1X/92387868fc4d340cabc9378d8d2d73353d9c2c41.png)

接下來要發生的事情就是，這個代碼倉庫的管理者會審核我們提交的代碼，并選擇給出修改意見或直接批准並合并進入官方代碼庫（如果代碼風格和提交信息格式正確的話很容易就會直接批准）。

# 📌 結語

希望通過這篇短文讓大家瞭解到Github的快速使用方法，當然，還有別的使用方法，但是本質都是一樣的三個步驟，即

> 1. 加入新代碼 → 2.提交代碼 → 3. 提交PR

希望這篇文對大家有幫助，如果喜歡就請點贊吧~

那麽下次再見，Happy coding! 🕶
