1. 程式人生 > >為什麽Github要把代碼合並請求稱為pull request而不是push request?

為什麽Github要把代碼合並請求稱為pull request而不是push request?

才會 控制 github 更改 fork 過程 answer 答復 而是

問題:

我的理解是:我做了一些修改,我請求把我的修改push到你的倉庫,然後你review一下我的代碼,如果沒問題就接受請求merge,這樣的話叫做push request豈不是更合適?因為這個操作是我主動發起的。pull是倉庫主向我fork的倉庫發起的操作,那麽pull request這種操作應該是要上遊倉庫主來向我發起啊,而不是我主動讓上遊倉庫主來pull我倉庫中的代碼。

答案:

這個pull指的是權限主體的操作。你提交了代碼,但是你沒有操作上遊repo的權限,你需要上遊repo的主人review你的代碼,然後把你的代碼修改pull到他的repo中去,這是對於pull的解釋。

而request則指的是發起主體的操作。也就是說,上遊repo的主人雖然有repo的控制權,可以把你的代碼更改pull到他自己的repo裏,但是他不會主動去pull。而是需要你(發起主體)向上遊repo的主人提交申請,也就是request,上遊repo的主人才會去響應你的request,也就是執行你所說的review和pull的過程。

所以,pull request的理解方法是:一個通知上遊repo所有者拉取代碼(pull)請求(request)

在英語中,request一般指的是提交一個申請,需要對方對申請給予答復的。而request之前的修飾詞,則是答復方的動作,當然,中文中也是一樣。比如“入團申請”,你提交申請之後,需要對方允許你入團你才算是團員。所以,入團的動作不是你主動做的,而是由審核的人把你的名字加上去才算“入團”。同理“pull request”中,request是你提交的,而pull則是對方做的事情。

為什麽Github要把代碼合並請求稱為pull request而不是push request?