date: 2019-09-10 22:25:56
title: tech| 開源之路: github PR 走起
想快速提高編程能力, 還不快來 「全球最大同性交友社區」~
PR 只需幾步
github 開源之路, 從 PR 開始, 只需要如下簡單的幾步:
- 找到心儀的項目, fork 它
- 自己的倉庫裏就有了, clone 它
- 最新的 master 拉一個分支, 修改代碼
# 更新 master
git merge upstream/master
# 基於最新的 master 拉出新的分支進行開發
git checkout -b feat-xxx
# coding
# 提交
git add
git commit
git push
# PR 神器
- PR 神器參上 github desktop
完成 PR 只需要一步: cmd+r
快捷鍵
參與 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 裏看到自己啦
- PR 收到了修改意見怎麼辦
在自己原來的分支上繼續修改, push 過後, PR 裏就會自動同步啦
寫在最後
簡單吧, 交友哪有那麼難, 只要掌握一點 小技巧
國內開源的開發組都很熱烈歡迎 小鮮肉 的加入, 幾乎很容易拿到開發組的聯繫方式, 然後進行 深入交流, PR 從來都不是開源之路上的障礙.