Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
´úÂë¼ìÊÓ¹¤¾ßGerritµÄÈÕ³£Ê¹ÓÃ
 
  5535  次浏览      28
 2019-1-3
 
±à¼­ÍƼö:
±¾ÎÄÀ´×ÔÓÚ¼òÊ飬±¾ÎÄÖ÷Òª½éÉÜÁËgerritÊÇʲô¡¢gerritÓû§ÅäÖÃÒÔ¼°gerritµÄÈÕ³£Ê¹Óᢽø½×¹¦Äܵȡ£

1, GerritÊÇʲô£¿

Gerritʵ¼ÊÉÏÒ»¸öGit·þÎñÆ÷£¬ËüΪÔÚÆä·þÎñÆ÷ÉÏÍйܵÄGit²Ö¿âÌṩһϵÁÐȨÏÞ¿ØÖÆ£¬ÒÔ¼°Ò»¸öÓÃÀ´×öCode ReviewÊÇWebÇ°Ì¨Ò³Ãæ¡£µ±È»£¬ÆäÖ÷Òª¹¦ÄܾÍÊÇÓÃÀ´×öCode Review¡£

2, GerritÓû§ÅäÖÃ

Email¼¤»î

GerritÕË»§µÄÉèÖýçÃæ£¬µã»÷¡°Contact Information¡±½øÈëEmail RegisterÒ³Ãæ£¬ÊäÈë×Ô¼ºµÄÓÊÏäÕË»§£¨´ËÓÊÏäÐèÒªÓë×Ô¼ºµÄGitÅäÖÃÒ»Ö£©¡£¿ÉÒÔÅäÖöà¸öEmailÕ˺š£

SSH keyÅäÖÃ

ͨ¹ýÒÔÏÂÃüÁîÉú³É²¢¶ÁÈ¡±¾»ússh key:

ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub

Copy keyµÄÄÚÈÝ£¬ÔÚGerritÕË»§µÄÉèÖÃÒ³Ãæ¡°SSH Public Key¡±ÖмÓÈë¼´¿É¡£

3, GerritÈÕ³£Ê¹ÓÃ

3.1 »ñÈ¡´úÂë¿â

µÇ¼GerritºóÔÚProjects-->List, Ñ¡ÔñÏàÓ¦¹¤³Ìyour_project£¬½øÈë¸Ã¹¤³ÌµÄGeneral½çÃæ¡£

Ñ¡ÖС°clone with commit-msg hook¡±ºÍ¡°SSH¡±:

git clone ssh://your_account@review.xxxxx.com:29418/your_project && scp -p -P 29418 your_account@review.xxxxx.com:hooks/commit-msg cic-android/.git/hooks/

¿½±´ÒÔÉÏÃüÁîÔÚ×Ô¼º±¾µØGitÃüÁîÐд°¿ÚÖ´Ðм´¿ÉÀ­È¡¿â´úÂë¡£

3.2 Gerrit¹¤×÷Á÷³Ì

3.2.1 ÉÏ´«Ò»¸öcommit

GerritÏà¶ÔGitÌṩÁËÒ»¸öÌØÓеÄÃüÃû¿Õ¼ä¡°refs/for/¡±ÓÃÀ´¶¨ÒåÎÒÃǵÄÌá½»ÉÏ´«µ½Äĸöbranch£¬ÇÒ¿ÉÒÔÓÃÀ´Çø·ÖÎÒÃǵÄcommitÊÇÌá½»µ½Gerrit½øÐÐÉóºË»¹ÊÇÖ±½ÓÌá½»µ½Git²Ö¿â£¬¸ñʽÈçÏ£º

refs/for/<target-branch>

PushÒ»¸öCommitµ½Gerrit:

$ git commit
$ git push origin HEAD:refs/for/master

Ö±½ÓPushÒ»¸öcommitµ½Git²Ö¿â:(ÎÒÃÇĬÈÏÅäÖóɲ»ÔÊÐí)

$ git commit
$ git push origin HEAD:master

µ±ÎÒÃǵÄcommit Pushµ½GerritµÈ´ýreviewʱ£¬Gerrit»á½«´Ëcommit±£´æÔÚÒ»¸öÃûΪ¡°refs/changes/xx/yy/zz¡±µÄÒ»¸öÔÝ´æbranchÖС£

ÆäÖÐzzΪÕâ¸öcommitµÄpatch setºÅ£¬yyÊÇchangeºÅ£¬xxÊÇchangeºÅµÄºóÁ½Î»¡£

ÀýÈçÎÒÃǹ¤³ÌÖеÄÕâ¸ö´óÃ÷ͬѧµÄÌá½»£º

http://review.xxxxx.com:9090/#/c/545/

Ò»¹²Ìá½»ÁË9´Îpatch£¬ÄÇôµÚ9¸öpatch¾Í±£´æÔÚÒ»¸öÃûΪ¡°refs/changes/45/545/9¡±µÄbranchÖС£

¿ÉÒÔͨ¹ýGerritÒ³ÃæÖиÃcommitÓÒÉϽǵÄDownload°´Å¥ÑéÖ¤,±ÈÈç˵ÎÒÃÇÑ¡Ôñ¡°Cherry Pick¡±, ÃüÁîÈçÏ£º

git fetch ssh://your_account@review.xxxxx.com:29418/your_project refs/changes/45/545/9 && git cherry-pick FETCH_HEAD

ÔÚ´Ë£¬ÓбØÒªËµÏ¼¸¸ö¸ÅÄÒÔ±ãÀí½â£º

Change

Ò»¸öChange°üº¬Ò»¸öChange-Id£¬Õâ¸öId¾ÍÊÇͨ¹ýÎÒÃÇÀ­È¡´úÂë¿âµÄʱºòËù¿½±´µÄhooks£¨hooks/commit-msg£©×Ô¶¯Éú³ÉµÄ¡£

°üº¬Ò»¸ö»ò¶à¸öPatch Set£¬ÒÔ¼°ÖîÈçOwner£¬Project£¬Target branch,CommentsµÈÐÅÏ¢¡£

Change-Id

Change-IdÊÇÒ»´®SHA-1×Ö·û´®¡£ÓÐhooks×Ô¶¯Éú³ÉÔÚÎÒÃǵÄcommit messageÏÂÃæ£º

Feature:Music play.
BugId:/
Description:Music play.

Change-Id: I3d087f04d9d94bfaa93b8609b988b300af537497

ÔÚÒ»¸öprojectµÄÿ¸öbranchÖÐChange IdÊÇΨһµÄ¡£

Patch Set

Ò»¸öPatch Set¾ÍÊÇÒ»´Îcommit£¬Gerrit»á½«ÆäÉú³ÉÒ»¸öBranchÔÝ´æ¡£ChangeÖеÄÿÌá½»Ò»¸öPatch Set±íʾÕâ¸öChangeµÄÒ»¸öеİ汾£¬×Ô¶¯¸²¸Çǰһ¸öPatch Set£¬ ĬÈÏÇé¿öÏ£¬½ö×îºóÒ»¸öPatch SetÊÇÓÐÒâÒåµÄ¡£Code Reviewͨ¹ýʱ£¬Ò²½ö½öÊÇ×îºóÒ»¸öPatch Set»áºÏ²¢µ½Ö¸¶¨µÄbranchÖС£

¸öÈËGit¹¤×÷Ô­ÔòÒ»

** ÓÀÔ¶ÊÇ»ùÓÚÔ¶³Ì¿âµÄ×îдúÂ빤×÷£¬¾¡Á¿Ã¿Ò»²½²Ù×÷£¨ÌرðÊÇadd/commit/push£©¶¼Í¨¹ýgit pull --rebase»ñȡһϵ±Ç°×îа汾¡£**

¸ù¾ÝÒÔÉÏÔ­Ôò£¬½¨ÒéÔÚ½«±¾µØcommit pushµ½GerritÖ®ºó£¬Á¢Âíresetµô£¬»òÕßÖØÐÂÇл»Ò»¸öеķÖÖ§¹¤×÷¡£

3.2.2 ÉÏ´«Ò»¸öеÄpatch set

µ±ÎÒÃǵÄcommit±»reviewer´ò»ØÀ´Ê±£¬ÎÒÃÇ¿ÉÄÜÐèÒªÐ޸IJ¢ÖØÐÂÌá½»¡£

Èç¹ûÎÒÃǵĴúÂëÔÚ±¾µØ·ÖÖ§ÒѾ­resetµô£¬¿ÉÒÔͨ¹ýGerritÒ³ÃæÌṩµÄDownload·½Ê½»ñÈ¡£º

// fetch and checkout the change
// (checkout command copied from change screen)
$ git fetch ssh://your_account@review.xxxxx.com:29418/your_project refs/changes/45/545/9 && git checkout FETCH_HEAD

Èç¹û֮ǰÊÇͨ¹ýÇл»·ÖÖ§·½Ê½¹¤×÷µÄ£¬¿ÉÒÔÖØÐÂÇл»»Ø°üº¬´ËcommitµÄ·ÖÖ§¶øÎÞÐèÖ´ÐÐÉÏÊöÃüÁȻºó¿ÉÒÔÔÚ´Ë´úÂë»ù´¡ÉϽøÐÐÐ޸ģ¬ÖØÐÂadd£¬amend commit:

// rework the change
$ git add <path-of-reworked-file>
...

// amend commit
$ git commit --amend

// push patch set
$ git push origin HEAD:refs/for/master

3.2.3 Ìí¼ÓReviewers

ÔÚChange½çÃæÌí¼ÓÏà¹Øreviewers.¿ÉÒÔ¿¼ÂÇʹÓÃ×Ô¶¯Ìí¼ÓreviewersµÄ²å¼þ

3.2.4 Ìá½»Change

ChangeÒ»°ãÅäÖóÉÖ»ÓÐÔÚCode-Review +2 ÒÔ¼°Verified +1 µÄÇé¿öϲſÉÒÔSubmit¡£

Submitʱ¿ÉÄÜ»áÓгåÍ»£¬½çÃæ»áÌáʾ¡°Cannot Merge¡±×ÖÑù£¬´Ëʱ¿ÉÒÔÏȳ¢ÊÔGerritÒ³ÃæÌṩµÄRebase¹¦ÄÜ×öÒ»´ÎRebase²Ù×÷£¬Èç¹ûÌáʾ³åÍ»£¬ÔòÐèÔÚ±¾µØ½â¾ö³åÍ»ºóÖØÐÂÌá½»Ò»¸öPatch Setµ½¸ÃChangeÉÏ¡£

±¾µØRebaseµÄÒ»ÖÖÁ÷³Ì:

// update the remote tracking branches
$ git fetch

// fetch and checkout the change
// (checkout command copied from change screen)
$ git fetch ssh://your_account@review.xxxxx.com:29418/your_project refs/changes/74/67374/2 && git checkout FETCH_HEAD

// do the rebase
$ git rebase origin/master

// resolve conflicts if needed and stage the conflict resolution
...
$ git add <path-of-file-with-conflicts-resolved>

// continue the rebase
$ git rebase --continue

// push the commit with the conflict resolution as new patch set
$ git push origin HEAD:refs/for/master

3.3 ¶àFeature²¢Ðпª·¢

Code ReviewÐèҪʱ¼ä£¬¿ª·¢ÈËÔ±¿ÉÒÔÔÚ´ËÆÚ¼ä¿ª·¢ÆäËûfeature£¬Õâ¾Í²úÉúÁ˶àfeature²¢Ðпª·¢µÄ״̬¡£

ΪÁ˱£Ö¤¼õÉÙ³åÍ»ºÍÒÀÀµ£¬Ã¿Ò»¸öfeature¶¼Ó¦¸ÃÊÇÔÚ¸Ãfeature×Ô¼ºµÄ±¾µØ·ÖÖ§¿ª·¢£¬ÇÒ´Ë·ÖÖ§ÊÇ»ùÓÚÔ¶³Ì·ÖÖ§£¨target branch£©µÄµ±Ç°HEADµÄ¡£ Ò²¾ÍÊÇ»ùÓÚÔ¶³Ì¿âµÄ×îдúÂ뿪·¢£¬¶ø²»Ó¦¸ÃÒÀÀµÓÚcode reviewÖеÄij¸ö¡¢Ä³Ð©Change¡£

µ±È»£¬Èç¹û±ØÒª£¬ÄãÒ²¿ÉÒÔ»ùÓÚÒ»¸öÕýÔÚcode reviewµÄChange¿ª·¢ÐµÄfeature£¬ÕâÑù»á²úÉúÒÀÀµ£¬¿ÉÒÔÔÚGerritÖиÃChangeµÄÒ³Ãæ¿´µ½¡°Related Changes¡±¡£Õâ¾ÍÒªÇóreviewerÒ²ÐèÒª¹Ø×¢Õâ¸öÒÀÀµ¹ØÏµ£¬µ÷ÕûreviewʱÐò¡£

¸ù¾ÝÒÔÍùµÄʹÓþ­Ñ飬ǿÁÒ½¨Òé²»Òª²úÉúÕâÖÖÒÀÀµ£¬¾¡Á¿Ê¹Ã¿Ò»¸öChangeÌá½»¶¼ÊÇÎÞÒÀÀµµÄ£¬±ÜÃâChangeµÄÁ¬»·Ê§°Üµ¼Ö¸÷ÖÖ½â³åÍ»µÄ¹¤×÷¡£

¸öÈËGit¹¤×÷Ô­Ôò¶þ

** ¾¡¿ÉÄܱ£Ö¤Ã¿Ò»¸öChangeµÄÍêÕûÐÔÒÔ¼°¶ÀÁ¢ÐÔ£¬ÇÒԽСԽºÃ¡£**

4, ½ø½×¹¦ÄÜ

4.1 WebÒ³Ãæ´úÂëÐÞ¸Ä

GerritÌṩÁËÖ±½ÓÔÚWebÒ³ÃæÐÞ¸ÄÎÒÃǵÄpatch´úÂëµÄ¹¦ÄÜ£¬Õâ¶ÔÓÚÎÒÃÇ×öһЩСµÄÎÊÌâÐ޸썱ÈÈç¸ñʽ»¯ÎÊÌ⣬ÃüÃû²»¶Ô£¬¶àÓàµÄ¿Õ¸ñµÈ)·Ç³£·½±ã¡£

µã»÷Editºó£¬¸Ã¹¤¾ßÀ¸ÏÔʾÈçÏ£º

¿ÉÒÔÔڴ˶ÔpatchµÄÎļþ½øÐÐÐ޸ģ¬É¾³ýµÈ¡£

Èç¹ûÏë¶ÔÎļþÖеÄij´¦½øÐб༭£¬µã»÷½øÈë¸ÃÎļþµÄreview½çÃæ£º

µã»÷±à¼­°´Å¥£¬½øÈë±à¼­Ä£Ê½£¬±à¼­Íêsave£º

»áÔÚChangeÒ³Ãæ¿´µ½£¬µã»÷Publish Edit°´Å¥£¬Gerrit»á×Ô¶¯°ïÄãÉú³ÉÒ»¸ö°üº¬¸Õ¸ÕÐ޸ĵÄpatch¡£

4.2 ²Ý¸åÏ书ÄÜ

Gerrit¿ÉÒÔ×÷Ϊһ¸ö×Ô¼ºµÄChange²Ý¸åÏ䣬ÎÒÃÇ¿ÉÒÔ½«Ò»Ð©»¹Î´Íê³É£¬»òÕß»¹²»ÏëÌá½»reviewµÄChangeÉÏ´«ÖÁ´Ë´¦¡£Ò»À´¿ÉÒÔ×÷Ϊһ¸ö±¸·Ý£¬ÁíÍâÔÚ¶àÈË»¥ÏàЭÖúÍê³Éͬһ¸ö¹¦ÄÜ£¬»òÊÇ×Ô¼ºÔÚ¶ą̀µçÄÔ£¨¼ÒÀï¡¢°ì¹«ÊÒ£©ÉÏ´¦ÀíδÍê³ÉµÄ¹¤×÷¡£

²»Í¬ÓÚÌá½»Ò»¸öÕýʽChangeµÄ¡°refs/for/¡±Ð­Ò飬Ìá½»Ò»¸öChangeµ½²Ý¸åÏäµÄЭÒ鷽ʽΪ¡°refs/drafts/¡±,ÈçÏ£º

$ git commit
$ git push origin HEAD:refs/drafts/luckyair

ÔÚGerritÒ³ÃæµÄDraftsÀ¸£º

²Ý¸åÏäÖеÄChangeÒ²¿ÉÒԺܷ½±ãµÄת»»ÎªÕýʽµÄChange£¬¶øÎÞÐèÖØÐÂÓá°refs/for/¡±À´Ìá½»£¬µã»÷Publish°´Å¥×ª»»ÎªÕýʽChange£¬Ò²¿ÉÒÔÔÚ´Ëɾ³ý´Ë²Ý¸å¡£

   
5535 ´Îä¯ÀÀ       28
Ïà¹ØÎÄÕÂ

Éî¶È½âÎö£ºÇåÀíÀôúÂë
ÈçºÎ±àд³öÓµ±§±ä»¯µÄ´úÂë
ÖØ¹¹-ʹ´úÂë¸ü¼ò½àÓÅÃÀ
ÍŶÓÏîÄ¿¿ª·¢"±àÂë¹æ·¶"ϵÁÐÎÄÕÂ
Ïà¹ØÎĵµ

ÖØ¹¹-¸ÄÉÆ¼ÈÓдúÂëµÄÉè¼Æ
Èí¼þÖØ¹¹v2
´úÂëÕû½àÖ®µÀ
¸ßÖÊÁ¿±à³Ì¹æ·¶
Ïà¹Ø¿Î³Ì

»ùÓÚHTML5¿Í»§¶Ë¡¢Web¶ËµÄÓ¦Óÿª·¢
HTML 5+CSS ¿ª·¢
ǶÈëʽC¸ßÖÊÁ¿±à³Ì
C++¸ß¼¶±à³Ì