tech| 開源之路: github PR 走起

date: 2019-09-10 22:25:56
title: tech| 開源之路: github PR 走起

想快速提高編程能力, 還不快來 「全球最大同性交友社區」~

PR 只需幾步

github 開源之路, 從 PR 開始, 只需要如下簡單的幾步:

  • 找到心儀的項目, fork

fork

  • 自己的倉庫裏就有了, clone

clone

  • 最新的 master 拉一個分支, 修改代碼
# 更新 master
git merge upstream/master

# 基於最新的 master 拉出新的分支進行開發
git checkout -b feat-xxx

# coding

# 提交
git add
git commit
git push

# PR 神器

github desktop

完成 PR 只需要一步: cmd+r 快捷鍵

參與 PR

  • 參與 PR

參與 PR

使用 cmd+b 快捷鍵, 切換不同分支, 包括 PR

hyperf-cloud/hyperf 主項目上, 使用 github desktop 就可以切換到 PR, 參與到 PR 中

github desktop 小技巧

  • cmd+1 : change 界面, 查看代碼修改
  • cmd+2 : history 界面, 查看歷史提交
  • cmd+t : 切換不同倉庫
  • cmd+b : 切換不同分支, 包括 PR
  • cmd+r : 提交 PR

其他功能自行探索, 不過我感覺上面幾個就夠用了, 其他我都是使用命令行, 鍵盤啪啪啪就行了

tips

  • upstream 是啥?

git 是 分佈式 的, 本地就是一個完整的倉庫, 那麼如何和其他人一起工作呢? -- 需要一個遠程倉庫, 它也是一個完整的倉庫, 用它來和我們的倉庫之間進行同步

# 查看 git 本地配置
git config --local -l

# 可以看到這個
[email protected]:daydaygo/hyperf.git
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*

這個 origin 分支就是我們用來同步的遠程的分支, 正常情況下, 我們只需要一個 origin 就可以了, 至於爲啥叫 origin, 約定俗成.

正常情況下, 我們有 origin 就夠用了, 但是在 PR 的場景下, 我們的 origin 是自己賬號裏的倉庫, 比如 daydaygo/hyperf 是從 hyperf-cloud/hyperf fork 出來的, 我們推送到 origin, 只是推送到自己的倉庫, 並沒有到開源項目裏, 這個時候就需要 upstream 這個分支了

怎麼玩了呢? 如果使用 github desktop, 這步自動搞定了, 如果遇到沒有的情況

# 添加 upstream 
git remote add upstream https://github.com/hyperf-cloud/hyperf

# 如果需要修改
git remote set-url upstream https://github.com/hyperf-cloud/hyperf

# 添加好後, 會看到這個
git clone --local -l

remote.upstream.url=https://github.com/hyperf-cloud/hyperf
remote.upstream.fetch=+refs/heads/*:refs/remotes/upstream/*
  • 提 pr 時分支是不是需要同名

稍微熟悉一點 git, 就會知道 branch/tag 等都只是指向對應的 commit, 提 PR 時, 其實是把你分支上的 commit 和你需要提交 PR 的分支上的 commit 進行合併, 所以從 master 上拉新分支時, 想取啥名字無所謂, 更爲重要的是, 你要更新到最新的 master, 和開源項目的 master 保持一致:

# 和開源項目的最新代碼保持一致
git merge upstream/master

# 再拉分支進行開發
git checkout feat-xxx # 想叫啥都行, 關鍵是你要合併到開源項目的哪個分支裏

至於爲啥叫 upstream, 約定俗成 而已, 這樣的套路, 在 coding 的過程中比比皆是, 看多了自然就有感覺了.

  • 愉快的參與開源, 成爲 contribute

設置 用戶名 + email 和 github 賬號裏保持一致, 這樣在 PR 被合並進去的時候, 就可以在開源項目的 contribute 裏看到自己啦

github contribute

  • PR 收到了修改意見怎麼辦

在自己原來的分支上繼續修改, push 過後, PR 裏就會自動同步啦

寫在最後

簡單吧, 交友哪有那麼難, 只要掌握一點 小技巧

國內開源的開發組都很熱烈歡迎 小鮮肉 的加入, 幾乎很容易拿到開發組的聯繫方式, 然後進行 深入交流, PR 從來都不是開源之路上的障礙.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章