84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
https://stackoverflow.com/que...
我看了這裡面的解釋,感覺還是不夠有說服力啊
我的理解是:我做了一些修改,我請求把我的修改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則是對方做的事情。
換一個寫法,xxx request可以寫成 "request for xxx",這樣應該會好懂一些。
xxx request
括號中的someone代表省略的部分。
someone
request (someone) for push,push的執行者是 "someone",因此這個 "someone" 就是你,因為是你push程式碼。如果是request (someone) for pull,那麼這個pull執行者就是程式碼庫的擁有者,因此就是你請求別人pull。顯然是後者更符合實際情況。
request (someone) for push
push
request (someone) for pull
pull
主動被動你已經分清楚了。
那麼其實問題是,pull request就是你請求上游倉庫來拉取你的程式碼。而如果用push request就是你force推送程式碼到上游倉庫。
其實這裡push和pull並不是說這件事是你主動做的還是被動做的,而是指你的程式碼是你主動push上去的,還是你的程式碼被別人pull走的。
如果用gitlab。那麼它的merge request 你應該容易理解的多
是這樣的,這個應該分開來解釋。
這個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則是對方做的事情。
換一個寫法,
xxx request
可以寫成 "request for xxx",這樣應該會好懂一些。括號中的
someone
代表省略的部分。request (someone) for push
,push
的執行者是 "someone",因此這個 "someone" 就是你,因為是你push
程式碼。如果是request (someone) for pull
,那麼這個pull
執行者就是程式碼庫的擁有者,因此就是你請求別人pull
。顯然是後者更符合實際情況。主動被動你已經分清楚了。
那麼其實問題是,pull request就是你請求上游倉庫來拉取你的程式碼。而如果用push request就是你force推送程式碼到上游倉庫。
其實這裡push和pull並不是說這件事是你主動做的還是被動做的,而是指你的程式碼是你主動push上去的,還是你的程式碼被別人pull走的。
如果用gitlab。那麼它的merge request 你應該容易理解的多