如题所述
æ»æä¸å¤©ä½ ä¼éå°ä¸é¢çé®é¢.
(1)æ¹å®ä»£ç åå¿æ交,ä¸çº¿åç°æé®é¢,æä¹å? 赶紧åæ».
(2)æ¹å®ä»£ç æµè¯ä¹æ²¡æé®é¢,ä½æ¯ä¸çº¿åç°ä½ çä¿®æ¹å½±åäºä¹åè¿è¡æ£å¸¸ç代ç æ¥é,å¿ é¡»åæ».
è¿äºå¼åä¸å¾å¸¸è§çé®é¢,æ以gitçåæ¶æ交,åéçè³è¿åä¸ä¸çæ¬é½æ¯ç¹å«éè¦ç.
大è´å为ä¸é¢2ç§æ åµ:
1.没æpush
è¿ç§æ åµåçå¨ä½ çæ¬å°ä»£ç ä»åº,å¯è½ä½ add ,commit 以ååç°ä»£ç æç¹é®é¢,åå¤åæ¶æ交,ç¨å°ä¸é¢å½ä»¤
reset
git reset [--soft | --mixed | --hard
ä¸é¢å¸¸è§ä¸ç§ç±»å
--mixed
ä¼ä¿çæºç ,åªæ¯å°git commitåindex ä¿¡æ¯åéå°äºæ个çæ¬.
git reset é»è®¤æ¯ --mixed 模å¼
git reset --mixed çä»·äº git reset
--soft
ä¿çæºç ,åªåéå°commit ä¿¡æ¯å°æ个çæ¬.ä¸æ¶åindexçåé,å¦æè¿éè¦æ交,ç´æ¥commitå³å¯.
--hard
æºç ä¹ä¼åéå°æ个çæ¬,commitåindex é½ååéå°æ个çæ¬.(注æ,è¿ç§æ¹å¼æ¯æ¹åæ¬å°ä»£ç ä»åºæºç )
å½ç¶æ人å¨push代ç 以å,ä¹ä½¿ç¨ reset --hard <commit...> åé代ç å°æ个çæ¬ä¹å,ä½æ¯è¿æ ·ä¼æä¸ä¸ªé®é¢,ä½ çº¿ä¸ç代ç 没æå,线ä¸commit,indexé½æ²¡æå,å½ä½ ææ¬å°ä»£ç ä¿®æ¹å®æ交çæ¶åä½ ä¼åç°ææ¯å²çª.....
æ以,è¿ç§æ åµä½ è¦ä½¿ç¨ä¸é¢çæ¹å¼
2.å·²ç»push
对äºå·²ç»æ代ç pushå°çº¿ä¸ä»åº,ä½ åéæ¬å°ä»£ç å ¶å®ä¹æ³åæ¶åé线ä¸ä»£ç ,åæ»å°æ个æå®ççæ¬,线ä¸,线ä¸ä»£ç ä¿æä¸è´.ä½ è¦ç¨å°ä¸é¢çå½ä»¤
revert
git revertç¨äºå转æ交,æ§è¡evertå½ä»¤æ¶è¦æ±å·¥ä½æ å¿ é¡»æ¯å¹²åç.
git revertç¨ä¸ä¸ªæ°æ交æ¥æ¶é¤ä¸ä¸ªåå²æ交æåçä»»ä½ä¿®æ¹.
revert ä¹åä½ çæ¬å°ä»£ç ä¼åæ»å°æå®çåå²çæ¬,è¿æ¶ä½ å git push æ¢å¯ä»¥æ线ä¸ç代ç æ´æ°.(è¿éä¸ä¼åreseté æå²çªçé®é¢)
revert 使ç¨,éè¦å æ¾å°ä½ æ³åæ»çæ¬å¯ä¸çcommitæ è¯ä»£ç ,å¯ä»¥ç¨ git log æè å¨adgitæ建çwebç¯å¢åå²æ交记å½éæ¥ç.
git revert c011eb3c20ba6fb38cc94fe5a8dda366a3990c61
é常,åå ä½å³å¯
git revert c011eb3
git revertæ¯ç¨ä¸æ¬¡æ°çcommitæ¥åæ»ä¹åçcommitï¼git resetæ¯ç´æ¥å é¤æå®çcommit
ç似达å°çæææ¯ä¸æ ·ç,å ¶å®å®å ¨ä¸å.
第ä¸:
ä¸é¢æ们说çå¦æä½ å·²ç»pushå°çº¿ä¸ä»£ç åº, reset å é¤æå®commit以å,ä½ git pushå¯è½å¯¼è´ä¸å¤§å å²çª.ä½æ¯revert 并ä¸ä¼.
第äº:
å¦æå¨æ¥åç°æåæ¯ååå²åæ¯éè¦å并çæ¶å,reset æ¢å¤é¨åç代ç ä¾ç¶ä¼åºç°å¨åå²åæ¯é.ä½æ¯revert æ¹åæ交çcommit 并ä¸ä¼åºç°å¨åå²åæ¯é.
第ä¸:
reset æ¯å¨æ£å¸¸çcommitåå²ä¸,å é¤äºæå®çcommit,è¿æ¶ HEAD æ¯åå移å¨äº,è revert æ¯å¨æ£å¸¸çcommitåå²ä¸åcommitä¸æ¬¡,åªä¸è¿æ¯ååæ交,ä»ç HEAD æ¯ä¸ç´ååç.
(1)æ¹å®ä»£ç åå¿æ交,ä¸çº¿åç°æé®é¢,æä¹å? 赶紧åæ».
(2)æ¹å®ä»£ç æµè¯ä¹æ²¡æé®é¢,ä½æ¯ä¸çº¿åç°ä½ çä¿®æ¹å½±åäºä¹åè¿è¡æ£å¸¸ç代ç æ¥é,å¿ é¡»åæ».
è¿äºå¼åä¸å¾å¸¸è§çé®é¢,æ以gitçåæ¶æ交,åéçè³è¿åä¸ä¸çæ¬é½æ¯ç¹å«éè¦ç.
大è´å为ä¸é¢2ç§æ åµ:
1.没æpush
è¿ç§æ åµåçå¨ä½ çæ¬å°ä»£ç ä»åº,å¯è½ä½ add ,commit 以ååç°ä»£ç æç¹é®é¢,åå¤åæ¶æ交,ç¨å°ä¸é¢å½ä»¤
reset
git reset [--soft | --mixed | --hard
ä¸é¢å¸¸è§ä¸ç§ç±»å
--mixed
ä¼ä¿çæºç ,åªæ¯å°git commitåindex ä¿¡æ¯åéå°äºæ个çæ¬.
git reset é»è®¤æ¯ --mixed 模å¼
git reset --mixed çä»·äº git reset
--soft
ä¿çæºç ,åªåéå°commit ä¿¡æ¯å°æ个çæ¬.ä¸æ¶åindexçåé,å¦æè¿éè¦æ交,ç´æ¥commitå³å¯.
--hard
æºç ä¹ä¼åéå°æ个çæ¬,commitåindex é½ååéå°æ个çæ¬.(注æ,è¿ç§æ¹å¼æ¯æ¹åæ¬å°ä»£ç ä»åºæºç )
å½ç¶æ人å¨push代ç 以å,ä¹ä½¿ç¨ reset --hard <commit...> åé代ç å°æ个çæ¬ä¹å,ä½æ¯è¿æ ·ä¼æä¸ä¸ªé®é¢,ä½ çº¿ä¸ç代ç 没æå,线ä¸commit,indexé½æ²¡æå,å½ä½ ææ¬å°ä»£ç ä¿®æ¹å®æ交çæ¶åä½ ä¼åç°ææ¯å²çª.....
æ以,è¿ç§æ åµä½ è¦ä½¿ç¨ä¸é¢çæ¹å¼
2.å·²ç»push
对äºå·²ç»æ代ç pushå°çº¿ä¸ä»åº,ä½ åéæ¬å°ä»£ç å ¶å®ä¹æ³åæ¶åé线ä¸ä»£ç ,åæ»å°æ个æå®ççæ¬,线ä¸,线ä¸ä»£ç ä¿æä¸è´.ä½ è¦ç¨å°ä¸é¢çå½ä»¤
revert
git revertç¨äºå转æ交,æ§è¡evertå½ä»¤æ¶è¦æ±å·¥ä½æ å¿ é¡»æ¯å¹²åç.
git revertç¨ä¸ä¸ªæ°æ交æ¥æ¶é¤ä¸ä¸ªåå²æ交æåçä»»ä½ä¿®æ¹.
revert ä¹åä½ çæ¬å°ä»£ç ä¼åæ»å°æå®çåå²çæ¬,è¿æ¶ä½ å git push æ¢å¯ä»¥æ线ä¸ç代ç æ´æ°.(è¿éä¸ä¼åreseté æå²çªçé®é¢)
revert 使ç¨,éè¦å æ¾å°ä½ æ³åæ»çæ¬å¯ä¸çcommitæ è¯ä»£ç ,å¯ä»¥ç¨ git log æè å¨adgitæ建çwebç¯å¢åå²æ交记å½éæ¥ç.
git revert c011eb3c20ba6fb38cc94fe5a8dda366a3990c61
é常,åå ä½å³å¯
git revert c011eb3
git revertæ¯ç¨ä¸æ¬¡æ°çcommitæ¥åæ»ä¹åçcommitï¼git resetæ¯ç´æ¥å é¤æå®çcommit
ç似达å°çæææ¯ä¸æ ·ç,å ¶å®å®å ¨ä¸å.
第ä¸:
ä¸é¢æ们说çå¦æä½ å·²ç»pushå°çº¿ä¸ä»£ç åº, reset å é¤æå®commit以å,ä½ git pushå¯è½å¯¼è´ä¸å¤§å å²çª.ä½æ¯revert 并ä¸ä¼.
第äº:
å¦æå¨æ¥åç°æåæ¯ååå²åæ¯éè¦å并çæ¶å,reset æ¢å¤é¨åç代ç ä¾ç¶ä¼åºç°å¨åå²åæ¯é.ä½æ¯revert æ¹åæ交çcommit 并ä¸ä¼åºç°å¨åå²åæ¯é.
第ä¸:
reset æ¯å¨æ£å¸¸çcommitåå²ä¸,å é¤äºæå®çcommit,è¿æ¶ HEAD æ¯åå移å¨äº,è revert æ¯å¨æ£å¸¸çcommitåå²ä¸åcommitä¸æ¬¡,åªä¸è¿æ¯ååæ交,ä»ç HEAD æ¯ä¸ç´ååç.
温馨提示:答案为网友推荐,仅供参考