git: 為什麼 pull request 不叫 push request ?

遇到我 想要 協助修改 的 開源項目。這個時候,pull request(合併申請功能)就可以讓原本 沒有 該倉庫 修改許可權 的我,也加入其中,為開源社區貢獻自己的一點點微薄力量。


語義很明確啊,別人從你倉庫里拉取代碼合併到本地叫做pull,你把代碼直接推到對方倉庫叫做push,你沒有許可權push只能讓別人pull,所以叫pull request。gitlab之類的通常就叫merge request,github上大部分協作需要你從自己fork的倉庫里提代碼,所以叫pull request


其實我想問為啥不叫 merge request


中文,我們會說,求你收了我吧。Request you to pull my codes. 再加上順序這東西,就成了 pull request 了


pull/push是具有方向性的動作,那麼就需要一個視角來作為這個方向的參照。github里的pull request是以你fork的那個repo的owner視角來說的,也就是說,是你請求對方進行pull操作來獲取你的commits。


這樣不妥。如果團隊內部幾個人給push許可權問題不大,但是如果push許可權給太多外面的人,大家push 容易亂套,所以合作方式是你pull 最新的,加上你的修改形成一筆change,然後提request 讓owner 去review 看是不是可以合入,如果可以他會合入的。你不需要直接合入。

that"s it。


推薦閱讀:

github上有哪些好的C開源項目?
git本地倉庫關聯多個remote,怎麼用本地一個分支向不同remote不同分支推送代碼?
如何在 GitHub 下載某個程序的特定版本(代碼)?
gitlab或github下fork後如何同步源的新更新內容?
git怎麼控制成員的許可權?

TAG:Git | GitHub | GIT項目 |