從一個(gè)dev分支向master發(fā)起pull request:
先說這個(gè)行為背景:前提是你fork了別人的code,你在人家code的基礎(chǔ)上進(jìn)行了修改均践,然后呢路鹰,你想把你修改的這部分代碼貢獻(xiàn)給原始的那個(gè)倉(cāng)庫(kù)(原作者代碼)炎功,那你這時(shí)就需要給原始repository發(fā)起一個(gè)pull request,當(dāng)人家check通過后座泳,你的代碼才能真正合并到原始那個(gè)repository中。當(dāng)然幕与,也并不是說非得你fork人家的code了挑势,也可能是同一個(gè)code repository,有多個(gè)分支啦鸣,你基于某個(gè)分支進(jìn)行了修改潮饱,最后想把修改后的內(nèi)容合并到master上,也可以發(fā)起pull request诫给,最后相應(yīng)的管理員就會(huì)審核你的pr香拉,審核通過后就能完成上述操作。也就是pull request的應(yīng)用場(chǎng)景是:合并申請(qǐng)需要在兩個(gè)不同分支或者不同倉(cāng)庫(kù)之間進(jìn)行中狂。
但是我們會(huì)很容易想到凫碌,那這個(gè)pull request和分支dev上的代碼合并到master上 ,這兩種操作有什么區(qū)別呢胃榕?
我的理解:其實(shí)目的是一樣的盛险,區(qū)別就在于pull requst是合并申請(qǐng),重點(diǎn)是申請(qǐng)勋又,也就是說最終合并與否是需要 人 來審核的苦掘。而我們普通意義上的分支code合并到master上并不涉及到申請(qǐng),審核的過程楔壤。
附上pull rerequest的官方解釋:
Pull requests let you tell others about changes you've pushed to a branch in a repository on GitHub. Once a pull request is opened, you can discuss and review the potential changes with collaborators and add follow-up commits before your changes are merged into the base branch.
翻譯過來就是鹤啡,pr的作用是將你對(duì)code的改變通知到其他人,一旦創(chuàng)建了pr挺邀,你可以和其他人一起進(jìn)行審核揉忘,查驗(yàn)跳座,討論交流,最終才會(huì)merge到master上泣矛。
再借用別人的翻譯:"Pull Request 是一種通知機(jī)制疲眷。你修改了他人的代碼,將你的修改通知原來的作者您朽,希望他合并你的修改狂丝,這就是 Pull Request。"
無論是基于repository的修改哗总,還是基于某個(gè)branch的修改几颜,我們?cè)谶M(jìn)行修改操作之前是需要先fork這個(gè)repository或者是基于這個(gè)branch再new一個(gè)branch,因此在最終發(fā)起pull request的時(shí)候讯屈,會(huì)有一個(gè)base(原repository或者branch)蛋哭,一個(gè)compare(你修改后的repository或者new branch),然后基于這兩部分內(nèi)容進(jìn)行pr涮母。
至于發(fā)起Pull request的步驟谆趾,這里使用github 提供的可視化界面進(jìn)行操作,指定base叛本,compaer沪蓬,并填寫操作信息,最后創(chuàng)建pr来候。